Posts Tagged ‘ecommerce’

Migrating or moving a magento site to a new server or domain

Tuesday, February 16th, 2010

OK, the problem…

There’s a nice shiny, fully-working Magento site and it’s running like a dream.   The only thing is it’s in the wrong place - maybe on a development server or an old server that’s fast running out of space!  You need to get that site out of there and fast!!

While looking into this I found a couple of suggested solutions - and some of them, although I’ve no reason to doubt they work were a little drawn out.  Here’s what worked for us and you’ll be glad to hear it’s the short and sweet option…

Create an sql script of the original site’s database that contains both the structure and data

Add the following code to the START of the sql script…

SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;

Add the following to the END of the sql script…

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;

The sql script is most likely to be several megabytes in size so zip it up into a zip-file - this will mean you can later use a tool like phpMyAdmin to import the script without hitting the 2 meg file size limit for file uploads.

Create the new domain and an empty database

Copy ALL the site’s file over to the new domain and ‘chown’ files as required

Make the following directories writable by the web server user:
- app/etc/
- var/
- media/

and for MagentoConnect:
- /<magento-path>/
- /<magento-path>/downloader
- /<magento-path>/downloader/config.ini
- /<magento-path>/downloader/pearlib/config.ini
- /<magento-path>/downloader/pearlib/pear.ini
- /<magento-path>/downloader/pearlib/php

If the database details have changed, update them in app/etc/local.xml

Run the (zipped) sql script on the new empty database

In the database table ‘core_config_data’ change the two record fields ‘/web/unsecure/base_url’ and ‘/web/secure/base_url’ to the new domain name if it has changed

Finally, delete the files in the following directories to manually clear the cache:

- /<magento-path>/downloader/pearlib/cache/*
- /<magento-path>/downloader/pearlib/download/*
- /<magento-path>/var/cache/*
- /<magento-path>/var/session/*
- /<magento-path>/var/report/*
- /<magento-path>/var/tmp/*