Knowledge base article

Manual WordPress migrations in a nutshell

This guide will walk through manually migrating a WordPress site to Serversaurus cPanel hosting without any downtime

To complete this guide, please ensure you have:

  • SSH Access - Serversaurus relies on key based authentication to login via SSH/SFTP, if you haven't already, generate your SSH key pair and configure it in cPanel before proceeding with the next steps
  • Your cPanel login details - These were included in the original Welcome to Serversaurus or IMPORTANT: Hosting Documentation email which you should find in your inbox, otherwise follow these instructions on how to update your cPanel password.
  • A backup of your WordPress website - A backup which includes the website files and database, ideally the backup will be compressed as a .tar.gz file

Let's begin!

  1. Login to cPanel and navigate to the MySQL Database Wizard function, follow the prompts to create your database, database user and assign all privileges to the database user.
    Store the database name, database user and password for later reference.
  2. Upload the website and database backup to your hosting server using your preferred SFTP client, uploading the backup to the public_html directory.Open Terminal and SSH to your hosting server (update the following command with your server login details):
    ssh username@servername.serversaurus.com.au
  3. Change into your public_html directory:
    cd public_html
  4. Extract the website file backup using the follow command, remember to update the backup with your file details:
    gunzip -c yourbackupname.tar.gz | tar xopf -
  5. Move all files from the backup directory to the present working directory. The following command moves all files and directories recursively (including hidden files):
    mv yourbackupname/* mv yourbackupname/.*
  6. Edit the wp-config.php file to connect the WordPress application to the MySQL database:
    vi wp-config.php

    Locate the section titled MySQL settings - You can get this info from your web host and add your stored database details into the corresponding fields. For example:

    /** The name of the database for WordPress */
    define( 'DB_NAME', 'database_test' );
    
    /** MySQL database username */
    define( 'DB_USER', 'database_test' );
    
    /** MySQL database password */
    define( 'DB_PASSWORD', 'Fc*St@lBpPu0V@*R1' );
  7. Now upload your database file by logging into MySQL and importing the database (previous uploaded via SFTP). Firstly check your present working directory using:
    pwd

    Save the output and append your database filename to the end, for example:

    /home2/username/public_html/database.sql
  8. Login to MySQL, update the following command with your database username:
    mysql -u database_test -p

    Enter your database user password when prompted.
    Change into the database (update the command with your database name):

    use database_test;
  9. Import your database backup (updating the below command with your previous saved path to your SQL file:
    source /home2/username/public_html/database.sql;

    Once the process is complete, quit out of MySQL:

    quit
  10. Check the website before updating your DNS, by adding a host file entry to your computer.
  11. Delegate the DNS to the server, this steps varies between providers so feel welcome to get in touch with our Support Team for specific instruction.
  12. Install a complimentary SSL certificate so your website can be served over a secure connection.

Well done! The migration is complete!

Troubleshooting recommendations
If you have any warnings/errors, please check for the below common post migration issues

  1. Login to WordPress and clear all website cache.
  2. Check DNS is resolving to correct server IP address.
  3. Login to phpMyAdmin, check wp_options table and confirm the siteurl and home are pointing to the correct domain name- update if required.
  4. Check all PHP dependencies are enabled.

Last updated November 30, 2023

Can't find what you're looking for?

Submit a question

  • Drop files here or
    Max. file size: 2 MB, Max. files: 3.
    • This field is for validation purposes and should be left unchanged.