Below is the notes I had to move my WordPress website from AWS (Amazon Web Services) to OCI (Oracle Cloud Infrastructure).
1. Export WordPress from AWS
On the AWS WordPress site:
- Install and activate the All-in-One WP Migration plugin.
- Use it to export your website and download the
.wpressbackup file to your computer.
2. Set Up WordPress on OCI
On your OCI server:
sudo mkdir -p /var/www/exampleblog.com/public
Copy your unzipped WordPress files into /var/www/exampleblog.com/public.
3. Create a New Database
Log into MySQL:
sudo mysql -u root -p
Run these commands to create the database and user:
CREATE DATABASE wp_example DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser_example'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wp_example.* TO 'wpuser_example'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4. Configure Apache Virtual Host
Create a new site configuration file:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/exampleblog.com.conf
Edit the new config to point to /var/www/exampleblog.com/public.
Enable the site:
sudo a2ensite exampleblog.com.conf
sudo systemctl reload apache2
5. Fix Permissions
Give Apache ownership of your WordPress files:
sudo chown -R www-data:www-data /var/www/exampleblog.com
6. Update wp-config.php
Copy the sample config file:
cp wp-config-sample.php wp-config.php
Edit wp-config.php with your database details:
define('DB_NAME', 'wp_example');
define('DB_USER', 'wpuser_example');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost');
You can customize $table_prefix if you’d like.
7. Update DNS
Log into your domain registrar (e.g., GoDaddy, Namecheap, etc.) and point your domain (exampleblog.com) to the OCI server’s IP address.
8. Complete WordPress Setup
Visit your domain in a browser.
Run the initial WordPress installation wizard and create your new admin user.
9. Import Your Backup
On the new WordPress site:
- Install and activate the All-in-One WP Migration plugin.
- Import the
.wpressfile you exported earlier. - This restores all your posts, pages, comments, and settings.
10. Enable HTTPS with Let’s Encrypt
Install an SSL certificate using Certbot:
sudo certbot --apache -d exampleblog.com -d www.exampleblog.com
11. Adjust Apache Config (Optional: Keep HTTP)
If you want to keep HTTP (not just force HTTPS), edit:
/etc/apache2/sites-available/exampleblog.com.conf
Comment out the auto-redirect lines:
# RewriteCond %{SERVER_NAME} =www.exampleblog.com [OR]
# RewriteCond %{SERVER_NAME} =exampleblog.com
# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Test and reload Apache:
sudo apache2ctl configtest
sudo systemctl reload apache2
12. Update WordPress URLs
In your WordPress dashboard:
- Go to Settings → General.
- Update WordPress Address (URL) and Site Address (URL) from
http://tohttps://.