Overview
This guide explains how to migrate a WordPress website hosted on AWS EC2 to Neurax Host. The process includes backing up WordPress files and the database, transferring them to Neurax Host, configuring WordPress, and testing the website before switching DNS.
Neurax Host offers website migration assistance. Before starting a manual migration, contact Neurax Host support to confirm whether your hosting plan qualifies for free migration and whether the team can handle the transfer for you.
This guide describes a manual migration method. The exact steps may vary depending on your AWS server configuration, WordPress installation, database setup, and Neurax Host plan.
Prerequisites
Before you begin, ensure you have:
- An active AWS account with access to the EC2 instance hosting WordPress.
- Access to the WordPress website and its files.
- Access to the WordPress database or a database backup.
- An active Neurax Host hosting account.
- cPanel access, if included with your Neurax Host plan.
- Access to your domain's DNS settings.
- Sufficient storage space for website files and database backups.
- A way to transfer files from AWS to your computer or directly to Neurax Host.
SSH access can be useful for manual migration, but it is not the only possible method. Depending on your AWS configuration, you may be able to use a backup plugin, an available server control panel, a database export tool, or assistance from a migration service.
Phase 1: Back Up and Export WordPress from AWS
Step 1: Access Your AWS WordPress Installation
Purpose: Identify how your WordPress website is hosted and how to access its files and database.
Instructions:
- Sign in to the AWS Management Console.
- Open the EC2 service.
- Locate the instance hosting your WordPress website.
- Review the instance details and determine how the WordPress installation is managed.
- Identify the available method for accessing website files and the database.
If you have SSH access and the necessary private key, you may connect using a command similar to:
ssh -i your-key.pem ubuntu@your-server-ip
Replace the example key path, username, and IP address with the values appropriate for your instance. The username may differ depending on the operating system and server image.
Expected outcome: You have identified a suitable way to access or back up the WordPress installation.
Step 2: Locate the WordPress Installation
Purpose: Identify the directory containing your WordPress website.
WordPress installations may be located in directories such as /var/www/html or /var/www/wordpress, but the actual location depends on the server setup.
If you have shell access, inspect the relevant directories and verify that the installation contains files such as:
wp-adminwp-contentwp-includeswp-config.phpindex.php
Expected outcome: You have identified the correct WordPress installation directory.
Step 3: Create a Backup of Website Files
Purpose: Create a recoverable copy of the website before migration.
Use a backup method supported by your AWS environment. Depending on your setup, this may involve a WordPress backup plugin, an available control panel, or server file access.
If you have the necessary command-line tools and permissions, you may create an archive from the WordPress installation directory:
zip -r backup.zip .
Run this command from the correct WordPress directory. Confirm that the archive includes the necessary website files and hidden configuration files where applicable.
Expected outcome: A backup archive containing the selected website files is created.
Important: A website file archive does not necessarily include the WordPress database. Back up the database separately.
Step 4: Download or Transfer the Website Backup
Purpose: Make the website backup available for migration to Neurax Host.
Depending on your AWS configuration, you can download the archive to your computer or use another supported file-transfer method.
For example, if SSH/SCP access is configured, a command may look like this:
scp -i your-key.pem ubuntu@your-server-ip:/path/to/backup.zip .
Replace the example values with the correct username, server address, and archive path.
For large backups, consider transferring files directly to the destination using a supported method, or ask Neurax Host support for assistance.
Expected outcome: The website backup is accessible for transfer to Neurax Host.
Step 5: Export the WordPress Database
Purpose: Back up the database containing WordPress posts, pages, users, settings, and other website content.
- Identify the database name and username used by WordPress.
- Check the WordPress configuration or the database management tool available on your AWS server.
- Use an available database export method to create an SQL backup.
If you have the required database credentials and command-line access, a command may look like this:
mysqldump -u DB_USER -p DB_NAME > database.sql
Replace DB_USER and DB_NAME with the actual database username and name. Enter the database password when prompted.
The exact command and authentication method may differ depending on your database server configuration.
Expected outcome: A database backup, such as database.sql, is created.
Step 6: Download or Transfer the Database Backup
Purpose: Make the database backup available for import.
Use a supported transfer method to download the SQL file or transfer it to the destination environment.
For example, if SSH/SCP is configured:
scp -i your-key.pem ubuntu@your-server-ip:/path/to/database.sql .
Replace the example values with the correct server details and file path.
Expected outcome: The database backup is accessible for migration.
Step 7: Verify the Backups
Before proceeding, confirm that you have:
- A website file backup.
- A separate database backup.
- The correct WordPress installation files.
- Relevant configuration details, including the current website URL.
- A copy of the existing DNS records.
- A plan for testing the destination website before switching DNS.
Protect the backup files because they may contain credentials, personal information, and other sensitive website data.
Expected outcome: The backups and configuration information needed for migration are ready.
Phase 2: Prepare Neurax Host
Step 8: Access Neurax Host
Purpose: Open the destination hosting environment.
- Sign in to your Neurax Host account.
- Open cPanel if it is included with your plan.
- Confirm that your hosting account supports the domain and WordPress installation you intend to migrate.
Expected outcome: You can access the available destination hosting tools.
Step 9: Verify the Domain and Document Root
Purpose: Determine where the WordPress files should be placed.
- Open the Domains section in cPanel, if available.
- Locate your domain or add it if your plan supports the required configuration.
- Check the document root assigned to the domain.
- Record the actual directory path shown by the hosting control panel.
Do not assume that every domain uses public_html. The correct document root depends on the hosting configuration.
Expected outcome: You know the correct destination directory for the WordPress installation.
Step 10: Upload and Extract Website Files
Purpose: Restore the WordPress files on Neurax Host.
- Open File Manager, if available.
- Navigate to the verified document root.
- Upload the website archive.
- Wait for the upload to complete.
- Select the archive and use Extract if the option is available.
- Extract the files into the correct website directory.
Verify that the resulting directory contains the expected WordPress files and folders, including wp-admin, wp-content, wp-includes, and wp-config.php.
Expected outcome: The WordPress files are restored to the correct destination directory.
Important: Avoid accidentally creating a nested directory structure such as public_html/public_html/wp-admin if the intended document root is public_html.
For large archives, browser uploads may be affected by connection interruptions or hosting limits. Use a supported alternative transfer method or contact Neurax Host support if necessary.
Phase 3: Create and Import the WordPress Database
Step 11: Create a Database
Purpose: Create a database for the migrated website.
- Open the database management tool available in your Neurax Host cPanel.
- Create a new database.
- Record the full database name shown by the control panel, including any account prefix.
Expected outcome: A destination database is created.
Step 12: Create a Database User
Purpose: Create the account WordPress will use to access the database.
- Open the database management tool.
- Create a new database user.
- Generate a strong password.
- Save the username and password securely.
Expected outcome: A database user is created.
Step 13: Assign the User to the Database
Purpose: Grant WordPress the necessary database permissions.
- Select the new database user.
- Select the destination database.
- Add the user to the database.
- Grant the privileges required for WordPress to function. In a standard cPanel setup, this commonly means selecting ALL PRIVILEGES for the specific WordPress database.
- Save the changes.
Expected outcome: The database user has the required permissions.
Step 14: Import the Database Backup
Purpose: Restore the database exported from AWS.
- Open phpMyAdmin if it is available.
- Select the newly created database.
- Choose Import.
- Select the SQL backup exported from AWS.
- Start the import.
- Check the result for a success message or any reported errors.
Expected outcome: The WordPress database is imported into Neurax Host.
If the import fails, verify the selected database, the SQL file, and any database import limits. For large databases, ask Neurax Host support about suitable import methods.
Phase 4: Configure WordPress
Step 15: Update wp-config.php
Purpose: Connect WordPress to the destination database.
- Open the WordPress document root in File Manager.
- Locate
wp-config.php. - Create a copy before editing it.
- Update the database settings with the values supplied or confirmed for your Neurax Host account.
Example:
define('DB_NAME', 'YOUR_DATABASE_NAME');
define('DB_USER', 'YOUR_DATABASE_USERNAME');
define('DB_PASSWORD', 'YOUR_DATABASE_PASSWORD');
define('DB_HOST', 'YOUR_VERIFIED_DATABASE_HOST');
Replace each placeholder with the actual value.
Important: Do not assume that DB_HOST is always localhost. Confirm the correct database hostname from your hosting configuration or Neurax Host support.
- Save the file.
Expected outcome: WordPress is configured to connect to the destination database.
Step 16: Check Website URLs and Configuration
Purpose: Ensure WordPress uses the correct domain and destination settings.
- Verify the WordPress
siteurlandhomevalues. - Confirm that internal links and media URLs reference the intended domain.
- If the domain is changing, update URLs carefully using a WordPress-compatible method that handles serialized data.
- Back up the database before performing search-and-replace operations.
- Check relevant PHP requirements, plugins, themes, and external integrations.
Expected outcome: WordPress configuration is consistent with the intended destination website.
Phase 5: Test Before Switching DNS
Step 17: Test the Website on Neurax Host
Purpose: Verify the migrated website before sending public traffic to the new hosting environment.
- Use a preview or staging method if Neurax Host supports one.
- If no preview URL is available, ask Neurax Host support about testing options. A local hosts-file configuration may also be suitable in some situations.
- Test the homepage and important pages.
- Check images, styling, navigation, forms, and WordPress admin access.
- Review logs for database, PHP, or plugin errors where available.
- Confirm that important functions such as payments, bookings, or memberships work, if applicable.
Expected outcome: You have checked the migrated website before changing public DNS.
Important: A temporary URL is not guaranteed to be available. Confirm the supported testing method with Neurax Host.
Step 18: Verify WordPress Admin Access
- Open the WordPress admin URL using your intended domain or supported testing method.
- Sign in with your existing WordPress credentials.
- Confirm that the dashboard opens.
- Check themes, plugins, settings, and media.
- Test important administrative functions.
Expected outcome: The WordPress dashboard works on the destination hosting.
Phase 6: Switch DNS and Enable HTTPS
Step 19: Update DNS Records
Purpose: Direct visitors to the migrated website.
- Identify where the domain's DNS is managed.
- Obtain the correct DNS values from Neurax Host.
- Choose the appropriate method:
- Update nameservers if you intend to move DNS management and have accounted for all existing records.
- Update the relevant website DNS records if DNS management will remain with the current provider.
- Save a copy of the existing DNS records before making changes.
- Check email and other service records before changing nameservers.
- Apply the DNS changes and monitor the domain's resolution.
Expected outcome: The domain begins directing visitors to Neurax Host.
DNS changes do not become visible everywhere immediately. The time required varies with TTL values, caching, and DNS providers. There is no guaranteed fixed propagation period.
Downtime note: Testing the destination before switching DNS can reduce disruption, but it does not guarantee zero downtime. Websites with changing content, orders, bookings, or user activity may need a final data synchronization plan before the switch.
Step 20: Verify SSL and HTTPS
Purpose: Ensure the website loads securely over HTTPS.
- Confirm that the domain resolves to the intended destination.
- Check SSL/TLS Status in cPanel, if available.
- Verify that a valid SSL certificate covers the domain.
- Follow the available certificate-provisioning instructions or contact Neurax Host support if the certificate is missing or invalid.
- Once HTTPS works correctly, enable Force HTTPS Redirect if the option is available.
- Test important pages over HTTPS and check for mixed-content warnings.
Expected outcome: The website loads securely over HTTPS.
Do not assume that AutoSSL or a particular redirect option is available on every hosting configuration. Confirm the options provided by your account.
Post-Migration Checklist
Verify the following:
- Website homepage and important pages load.
- WordPress admin login works.
- Images, CSS, and JavaScript load correctly.
- Database connection works.
- Forms and email notifications work.
- Plugins and themes operate as expected.
- DNS points to the intended destination.
- SSL certificate is valid.
- HTTPS works correctly.
- Email and other DNS-dependent services remain functional.
- No critical errors appear in available logs.
- The original AWS website and backups remain available until the migration is verified.
If the website receives frequent updates or transactions, confirm that any changes made during migration have been preserved before considering the migration complete.
Troubleshooting
Error Establishing a Database Connection
Possible cause: Incorrect database credentials, hostname, or permissions.
Solutions:
- Verify
DB_NAME,DB_USER, andDB_PASSWORD. - Confirm the correct
DB_HOSTwith Neurax Host. - Ensure the database user has the required permissions.
- Confirm that the database import completed successfully.
Website Displays a Blank Screen
Possible causes: Plugin conflicts, theme issues, or PHP errors.
Solutions:
- Review available PHP and server error logs.
- Confirm that the PHP version is supported by WordPress, the theme, and the plugins.
- Back up the website before disabling plugins or modifying files.
- If a plugin conflict is suspected, temporarily disable the relevant plugin using a safe method, then test and re-enable plugins as appropriate.
Avoid displaying PHP errors publicly on a live website.
Website Loads Without Images or Styling
Possible causes: Incomplete file transfer, missing media, or incorrect URLs.
Solutions:
- Verify that
wp-content/uploadscontains the required media files. - Check the browser console for missing resources.
- Review internal links and media URLs.
- Confirm that the files are in the correct document root.
404 Errors After Migration
Solutions:
- Verify the domain's document root.
- Back up
.htaccessif it exists. - Log in to WordPress admin.
- Open Settings → Permalinks.
- Click Save Changes without changing the settings.
- Test the affected pages again.
If errors continue, check the server's rewrite configuration or contact support.
SSL Certificate Not Working
Solutions:
- Verify that DNS points to the intended server.
- Check the certificate status in cPanel, if available.
- Follow the supported SSL setup instructions or contact Neurax Host support.
- Enable HTTPS redirection only after confirming that the certificate works.
DNS Changes Not Taking Effect
Possible causes: Cached DNS records, incorrect DNS values, or nameserver changes that have not fully propagated.
Solutions:
- Verify the nameservers and website DNS records.
- Confirm the correct destination values with Neurax Host.
- Check DNS resolution from different networks.
- Allow time for caches to update; timing varies.
- Keep the original AWS hosting available until the destination has been verified.
Frequently Asked Questions
Can I migrate my WordPress website without downtime?
Downtime may be reduced by preparing and testing the destination website before switching DNS. However, zero downtime cannot be guaranteed. Websites with frequent content changes, orders, bookings, or user activity may require additional synchronization.
Does Neurax Host offer free website migration?
Neurax Host offers migration assistance, but free migration eligibility may depend on the hosting plan and service conditions. Contact Neurax Host support or review the official website to confirm whether your plan qualifies before starting a manual migration.
Will migration affect my AWS website?
Copying files and exporting a database does not automatically delete the original AWS website. Keep the AWS site running until the destination has been tested and verified. Be aware that the two websites can become different if updates continue on the original during migration.
How long does migration take?
Migration time depends on website size, database size, internet speed, server configuration, transfer limits, and website complexity. Additional time may be required for testing, troubleshooting, DNS changes, and data synchronization. No fixed completion time can be guaranteed.
Do I need SSH access to AWS?
No. SSH is one possible method for accessing files and exporting the database, but alternatives may include a WordPress backup plugin, an available control panel, an existing backup, or assistance from a migration service. The suitable method depends on how your AWS WordPress installation is configured.
Can I use a backup plugin instead of manual migration?
Yes, if the plugin supports your WordPress installation and the backup can be restored in the destination environment. Examples include UpdraftPlus, All-in-One WP Migration, and Duplicator. Check the plugin's requirements and any applicable file-size or import limitations.
What files are required for migration?
You generally need a complete backup of the WordPress files and a separate database export. Depending on your backup method, hidden files and additional configuration files may also be required.
How do I verify that migration was successful?
Check that the website and WordPress admin load, images and styling display correctly, the database connection works, important features function, DNS points to the destination, and HTTPS is valid.
Migration Complete
Once the migrated website has been tested, DNS has been verified, and critical features are working, the migration can be considered complete. Keep your backups and original AWS environment available until you are confident the Neurax Host website is operating correctly.