There are a few reasons why I don’t like automatic upgrade. It updates the site directly. Even though there are backups, it’s a pain to roll back if something goes wrong. It also doesn’t work on servers that doesn’t have internet presence.
There’s manual update instruction, which is also directly updates the site.
This documents an alternative method to upgrade WordPress based on manual update instruction.
IMO this seems to be a better solution. If there are any files other than the core file changed, the latest version is always used. The only files that are replaced are project specific files. It works on a separate site to ensure it’s working. The original site also didn’t have to put on maintenance mode for the process. Most importantly, if anything gone wrong, simply rename the directories back to the original.
Step 1: Preparation
Backup WordPress files and database. This should’ve been done on a regular basis.
Download the lastest version and unzip. Download any updated plugins.
wp-config.php from current site with the new
wp-config-sample.php to see if there are anything new and edit if required.
Step 2: Upgrade
Create a new directory with the unzipped files.
Based on a more detail overview of the upgrade process, note step 7 a list of “do not delete files”. Copy those files from the current site to the new directory, namely:
- delete subfolders cache and plugins/widgets
- themes and plugins and updated plugins
- wp-includes/languages/ – if required
- .htaccess (if any)
- robots.txt (if any)
- maintenance files if any – .maintenance, wp-content/maintenance.php
Step 3: Rename files and complete upgrade
Rename the current root folder to, say, backup, and rename the new folder to the current root folder.
From browser go to admin page. it will prompt you to upgrade.
If there are problems, just rename the folders back.
Note that the original instruction mention disable plugins before upgrade. I didn’t do it and didn’t have any problems.
If you have encountered problem following instruction in this post, please leave a comment.