Read all of the other posts in our series on Creating Azure (hosted) WordPress Websites without knowing php or MySql!

Part 1: Backup a WordPress website

Backups are only as good as a successful, proven restore process. And the Restore process of the Azure App Service for a WordPress (WP) website should to be tested, validated and documented BEFORE disaster recovery is needed!

To demonstrate the ease and effectiveness of the Azure App Service Restore process, we’ve made several simple changes to a staged WordPress website (WP-techblog), changing some back-end WordPress functionality as well as changing website content. We’ll then use the Azure Restore feature to restore to the initial state of the website, i.e. before the changes, in the first manual backup/snapshot captured.

  1. In the Admin Dashboard of the website, we’ve done the following changes to the website, after the backup was run:
  • Deleted the ‘Hello World ‘Sample Post so there are 0 posts on the website with 1 showing in the Trash
  • Overwritten the Sample Page (which was the Front Page) with an ‘About’ page that we also put it in the top navigation on the front end:

  • Removed the Recent Comments, Archives, Categories and Meta widgets from the website right sidebar leaving only the Search widget:
  • Added 3 new plugins and updated them
  • Deleted the default installed Hello Dolly plugin:

2. Run a manual backup of the changed website (so we can restore back to it once the initial validation of the restore process is completed if we want to), but we’ll restore to the first backup (in this example, Wed, June 14 Backup) taken before any changes were made to the default WP installation.

3. Choose the first backup (in this example, Wed, June 14 Backup) from the drop-down list of Backups to Restore > select New or existing app > (Note the text stating ‘Restoring to App: WP-TechBlog’, which is the existing app/website) > OK:

4. A notification pop-up shows that the Restore operation is successfully completed:

5. Initially browsing to the website will give an Error 403 warning while the wep app is restarting after the Restore operation (which can be somewhat unnerving if you’re not expecting it!):

6. After a few moments, depending on how large the restored website is, the WP Login page will load again:

7. Validate that the Restore operation (in this example) returned to the first backup’s settings – i.e. the 5 changes done to the website have been reverted to the default WP installation: (this is helpful to test that the Restore operation works as expected – especially if desiring to return to the base setup or a previous backup if a website change or addition locks up or breaks the website.)

  • The ‘Hello World” Post has been restored and 0 in Trash:

  • The Sample Page was restored:

  • On the front-end or public side of the website, the Widgets in the Right Side Bar have all ‘returned’ in the default WP locations, and the top navigation menu is back to the default WP setup:

  • All of the 3 new installed Plug-ins are gone, with only the 2 default, out-of-the-box, WP plugins being installed. Note that even the Akismet Anti-Spam plugin has been restored to the non-updated version:

In this example, the website backup snap-shot taken on June 14, 2017 was totally restored, before any of the additions or changes were made.

As we’ve found in working with WordPress, often updates of plugins, themes and/ or core-WP updates may conflict, ‘breaking’ the website. Being able to go back to the last successful working copy of the website, and then begin step-by-step discovering and eliminating the conflicts from updates, saves a LOT of time and frustration.

A ‘Best Practice’ is to have an exact development copy of the production website to test all updates and functionality changes BEFORE implementing on the production site keeps the front-end public website always online! Even these we backup before making any changes, so we can quickly restore to a working dev website.

Azure App Service Backup and Restore features make it very easy to have confidence in working with the WordPress technology that we’re not familiar with – php and mysql.

Indeed, it is also a good practice to keep a backup copy of the default WP setup, just as it is to keep a current copy of the final updated, working website. Always run a manual backup before adding any new functionality to the website, whether that be updating plugins or WP core or adding any new plugins or website functionality, so the website can always ‘revert’ to the last successful working copy before changes were made.

We go another step in ensuring data security & availability, by creating a copy of our data & backup Blob Storage Containers to another ‘GeoLocation’ Blob Storage. Read about how we do that here.

Read all of the other posts in our series on Creating Azure (hosted) WordPress Websites without knowing php or MySql!