I’ve decided to rewrite the previous version of this article. It’s been cloned and copied loads of times, and to be honest it got bloated. I also prefer this new way.
This guide aims to only take you through the steps I use now when a PHP version update is needed for my AWS Lightsail Bitnami WordPress install.
No fluff. Limited details. Just 7 steps and 3 optional ones.
You follow this guide at your own risk. Back up your site first. The older version of this article is still valid if there isn’t enough information for your needs here.
The main change here is we’re going to use a very simple maintenance plugin which shows a message in the short time required between moving to the new install and importing the old blog backup. This does away with the potential complexity of the Lightsail IP address being saved to the database as part of the migration.
Ready?
Read more: Updating PHP on an AWS Lightsail WordPress Stack – Version 2This guide assumes you have a static IP on your current Lightsail instance. If you don’t, this guide isn’t for you.
1. Create a new AWS Lightsail instance
Match the instance type of the current setup unless you know otherwise. Choose a name you’ll remember for the following steps. For this guide, we’ll use New Instance, and Old Instance for our instance names.
2. Tweak the New Install’s PHP settings
Choose to ‘connect using SSH’ to New Instance.
Run cat bitnami_application_password
and take a note of the password for later
Run sudo nano /opt/bitnami/php/etc/php.ini
Use ctrl-w to trigger a search, or look manually for the partial max_size
and change the value from 80MB to whatever you need. It’s temporary, go wild.
Use ctrl-w to trigger a search, or look manually for the partial max_file
and change the value from 80MB to whatever you need. It’s temporary, go wild.
Run sudo /opt/bitnami/ctlscript.sh restart
to restart Apache and apply the new upload limit settings
Keep this window open for use in step 6.
3. Get migrate and maintenance ready
Open the New Instance’s wp-admin. If you don’t know how via the IP address, there’s a button at the top of the page in LightSail admin which says ‘Access WordPress Admin’. Log in using the username user
and the password that you made a note of in the step 2.
Go to plugins in the navigation
Click enable next to WP migrate (it’s installed by default). If you don’t see it, click ‘Add New’ – search for ‘Migrate’ and install and enable ‘All-in-One WP Migration`
Click the ‘Add New’ button and search for ‘Maintenance’ – Install and enable ‘WP maintenance’
Click ‘WP maintenance’ in the left nav. Change the body text to ‘We’ll be back in a few minutes’, because the default message isn’t ideal. Save.
Enable maintenance mode, and save again. New install now in maintenance mode, although you can still see it because you’re logged in as admin.
4. Export the live site
I do this at step 4 to limit the time between export and import, but if you’re not as bothered, you could save overall time by starting this step first, and doing other steps while the export is taking place.
Open the live site’s wp-admin. Go to plugins. Enable ‘All-in-One WP Migration’, or if required, click ‘Add New’ as above, install and enable it.
Click ‘All-in-One WP Migration’ in the left nav. Click ‘Export to’. Select ‘File’.
When the process has finished, click the download button to do the actual file downloading to your machine.
From step 5 you’ll want to move fast if limiting downtime (length of maintenance message display) is important to you. It took me about 5 minutes from this point for a 350MB WordPress site.
5. Move the live domain to the new site
In Lightsail admin navigation click Networking, then click the name of the static IP associated with the currently live site.
On the manage screen for IP, click to detach it from Old Instance. Then immediately reattach it to the New Instance.
6. Add an SSL Certificate to New Instance
Still got the New Instance SSH window open? Switch to it, or open it again.
Run sudo /opt/bitnami/bncert-tool
Submit your domain name without www. Choose your preferred answers to the questions that follow. Stick in an email address. Agree to the right things with Y / n. Complete the process.
Reload, or open your live domain name in a browser. Keep refreshing, and pretty quickly it should go from not loading, to loading again.
7. Import to New Instance
Open up your live domain wp-admin. Log in using your settings above. So user
and password you made a note of.
Open All-in-One WP Migration and choose import. Choose File. Choose the file from your computer.
Wait. It should succeed. Only file size might stop it working, but fingers crossed. It will probably ask if you’re sure.
There you go. The site, file and database are moved to New Instance.
8. Put the settings back
Go back up to step 2 above and reverse the changes to php.ini on New Instance – or don’t. It’s up to you.
Check Setting => General. If your domain name shows as http:// and the field is readonly, you need to edit wp-config.php so in the New Instance SSH window…
Run nano /opt/bitnami/wordpress/wp-config.php find WP_HOME and WP_SITEURL and update to https://
9. Remove Old Instance
You can now ‘Stop’ or even remove old instance. I usually Stop mine, but keep it a few days just in case.
If you messed anything up above, the only change required to go back is step 5 in reverse. Point the static IP back to Old Instance. Insure it’s not Stopped first.