This guide on single website migration between two cPanel servers will consist of 6 main steps:
1. Backup generation.
Recommended way to back up files are via using the Backup feature on the cPanel menu (Files -> Backup). For the backup generation we have already prepared another guide here.
The most important part from this guide is in the second screenshot seen in sections “Download a Home Directory Backup” and “Download a MySQL Database Backup”. Here you should download the website file backup and the required database copy.
IMPORTANT NOTICE: If you will restore database with the same name as already existing one on the server, the data will be overwritten, so change the database name before generating it’s backup.
2. Preparing hosting plan for importing data.
To prepare the hosting plan for new website, you should create the domain as an Addon Domain in the domain section. For this we have also a guide prepared here.
3. Data restoration from backup.
Data restoration from backup is done from the same cPanel Backup feature as in the 1st step.
For the website file backup upload, select “Browse” button in section “Restore a Home Directory backup“. Pop-up will appear where you will have to choose the backup from your PC to be uploaded. Afterwards the backing up will start automatically, and you will be re-directed to website of restoration process status. From it go back to Backup section and via the same steps initiate database restoration from backup in “Restore a MySQL Database Backup” section.
4. Prepare Database for usage.
After the backup restoration will be completed, you will have to create database user and assign it to the related database.
These actions will be performed via the “MySQL® Databases“section of the cPanel Databases management section. Firstly, adding new user can be done in the “Add New User” section in the “MySQL Users” part of MySQL® Databases. You can create the same user as your database has used on previous server, but it is not mandatory. When you will create the user, save it’s username and password, since we will need them in the following step of this guide. After the user will be created, use the “Add User to Database” section of this page. From the User menu, select the newly create user and in the “Database” menu choose the database that you have uploaded and press “Add“. This will link the new user with the database.
5. Finalizing the website transfer to server.
After performing previous steps, your website files should by default be uploaded to /var/home/your_user/public_html/new_domain.tld directory. Because the old and new servers will probably be different, you will have to adjust website configuration file, so that old website would be compatible with new hosting plan. For the most popular CMS we have prepared a list of files that are used as configuration files, that has to be inspected and adjusted:
For Joomla: configuration.php. Important lines are var $db, var $user and var $password. These lines should contain database name, database user and database password accordingly.
For WordPress: wp-config.php. Important lines are define(‘DB_NAME’, ‘****’); , define(‘DB_USER’, ‘****’); , define(‘DB_PASSWORD’, ‘****’); and define(‘DB_HOST’, ‘****’);. Database name, user and password accordingly. DB_Host field should be set as “localhost”.
For Drupal: sites/default/settings.php. Important lines are ‘host’ => ‘localhost’ , ‘database’ => ‘****’, ‘username’ => ‘****’, and ‘password’ => ‘****’, .
For Prestashop: /config/settings.inc.php. Important lines are define(‘_DB_SERVER_’, ‘localhost’);, define(‘_DB_NAME_’, ‘****’);, define(‘_DB_USER_’, ‘****’); and define(‘_DB_PASSWD_’, ‘****’) .
For OpenCart: config.php. Important lines are define(‘DB_HOSTNAME’, ‘localhost’); , define(‘DB_DATABASE’, ‘****’); , define(‘DB_USERNAME’, ‘****’); and define(‘DB_PASSWORD’, ‘****’);.
6. Ending the transfer via DNS change.
For the website transfer to fully take place and be seen publicly, you should adjust your website domain DNS records, by pointing them via A type records to your ordered hosting plan IP address. This IP address can be seen in cPanel management page section General Information, by opening link “Server Information” on line “Shared IP Address”. The change for the DNS records should be done via your domain registrar system or another system, if you use custom DNS servers.