Migrating a magento website

Step 1 - Create a Database

First, you need to create a new MySQL database for your store. Log in to cPanel by following the instructions given in your Account Information email. Then click on the MySQL® Database Wizard icon. Type in a name for your new database (e.g. mystore) and click Next Step (see Figure 1). Now you need to assign a new user to your database. Type in a username and password then click Next Step. Finally, check the All Privileges checkbox and click Next Step to complete the database wizard.

You can now log out of cPanel and continue with the next step.

Create a new database
Figure 1: Create a New Database

Step 2 - Backup and Transfer Site

Now you need to make a backup of your existing store by downloading all the files in your Magento main directory to your local computer. If you have SSH (Shell) access at your current server, you can simplify the process by making a archive of your entire site first by using the 'tar' command. Run the following in your store's main directory:

tar -czf backup.tar.gz *

This will create a compressed "tarball" which can be downloaded to you local computer, then uploaded to our server. You can also transfer the file directly between the two servers by using the 'wget' command. To do this, you will need to log in to your account on our server using SSH, navigate to the directory where your site should be located. Then run the following command.

wget http://your_domain_or_ip/backup.tar.gz
tar -xzf backup.tar.gz

This will download your backup.tar.gz file to our server and uncompress it in the current directory. Note: you may transfer the backup file using e.g. FTP instead if you prefer.
Step 3 - Backup Database and Import

In this step you will make a backup of the current database and import it into the database you created in Step 1. To backup your database we recommend using SSH (if available) or a tool like phpMyAdmin.

Log in to your server with SSH, and then run the following command (replace hostname, dbUsername and dbName):

mysqldump -h hostname -u dbUsername -p dbName > db_backup.sql

This will create a "dump" of your entire database dbName and save it as db_backup.sql in the current directory. If you don't have SSH access, contact you current host for assistance on how to backup the database.

To import the backup into your newly created database, log in to SSH on our server and run the following command (replace dbUsername and dbName with the username and database name from step 1):

wget http://your_domain_or_ip/db_backup.sql
mysql -h 127.0.0.1 -u dbUsername -p dbName < db_backup.sql

This will download the backup file from your old server to ours and import the data into the database named dbName. Note: you may transfer the backup file using e.g. FTP instead if you prefer.
Step 4 - Reset File Permissions

To make sure that all javascript files, CSS, and images load correctly, you should reset the file permissions to the recommended settings for our servers. Some other providers require file permission settings which are not compatible with our setup, or may even be unsecure.

Run the following commands from your Magento root directory (e.g. public_html):

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

This will reset permissions for all files to CHMOD 644, and CHMOD 755 for directories.
Step 5 - Modify Configuration Settings

The final step is to edit the Magento configuration file to use the new database. Open the file local.xml under the "/home/username/public_html/magento_dir/app/etc/" directory in your favorite text editor (tip: use the File Manager in cPanel). Locate the and make the necessary changes as illustrated below.

1

Save the file and you are all set! You should now be able to open your site at our server. You may have to log in to the admin panel and change the Base URL for links to work if you are using a different domain.

PS: In order to use the Magento Connect Manager you may have to reset the PEAR configuration settings. To do this, simply remove the file downloader/pearlib/pear.ini, and a new one will be created automatically.

If you have any comments or questions regarding this tutorial, feel free to contact us.