I last ran through this guide myself on 26th January 2026 on this very site, which is about 750MB. I took it from PHP 8.2 to 8.4. WordPress 6.9 was installed on both source and destination instances during the process. With fast broadband it was down for less than 5 minutes.
I decided to rewrite the previous version of this article. The original has been cloned and copied loads of times, and to be honest it got bloated with updates and comments. I also prefer this new way. It’s fast and avoids issues with SSL certificates.
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 the domain over to the new install and importing the migration file. This does away with the potential complexity of the Lightsail IP address being saved to the database as part of the migration.
Ready?
This 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
Linux/Unix => Apps + OS => WordPress
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.
Once New Instance is in ‘running’ state…
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. (I used 800MB because my site was 750MB)
Then use ctrl-w again to trigger a search, or look manually for the partial max_file and change the value from 80MB to whatever you need. Again, it’s temporary. Again, go wild. (I used 800MB because my site was 750MB)
Run sudo /opt/bitnami/ctlscript.sh restart to restart Apache and apply the new upload limit settings
Close the SSH window. We’ll reopen later.
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 and the password that you made a note of in the step 2.user
Go to plugins in the navigation on the left. Click ‘Add Plugin’ at the top. Then search in the field for `WP migrate`.
Look for `All-in-One WP Migration and backup` and click to install. Then click Activate.
Click the ‘Add Plugin’ button again and search for ‘Maintenance’ – Install and Activate ‘WP maintenance’
Then 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 is 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 in the left side 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
Open the New Instance SSH window as above. Choose to ‘connect using SSH’.
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 when asked Y/n or N/y. Complete the process.
Then reload, or open your live domain name in a web 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 and password you made a note of in step 2.user
Click the All-in-One WP Migration plugin on the left and choose import. Choose the File option. Select the migration file from your computer that you downloaded in step 4.
Wait. It should succeed. Only file size might stop it working, but fingers crossed. It will probably ask if you’re sure you want to continue / replace content.
You’ll also see a warning like “Your backup is from a PHP 8.2 but the site that you are importing to is PHP 8.4. This could cause the import to fail.” Hopefully it won’t, but if your old instance is very very out of date there’s probably a risk.
There you go. The site, file and database are moved to New Instance.
Only if it fails.. reverse the step 5 process above to get the old instance back online.
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 Settings => 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:// – personally I have a simple setup and so also replace the $_SERVER variable with just the full domain too.
9. Remove Old Instance
You can now ‘Stop’ or even remove the old instance. I usually Stop mine and keep it a few days before removing 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.
10. Helpful? Say thank you.
Help me keep these guides up to date by showing your apprechiates with a small donation. Scan the QR code below, or buy me a coffee here.
