If you maintain a website,
you may have to change you current hosting server for many reasons. It
may be that, their service is not good or uptime is low or you may
consider to go a server with better facilities or even you may move to
your own VPS/Dedicated server. All of the these requires that you move
your current website to the new server.
But problem arises as you update the nameserver for your domains to
point to new server but the new name servers do not propagate world
wide. In this case, some people will see the website from the old
server while some from new server. If it is a dynamic site like forum,
blog etc. when propagation is complete, its sure that some users will
complain that their posts/contents are missing.
It is because the visitors who visited the website from old server
submitted the contents there. But when they are getting the server from
the new server, they will not see the contents as you did not sync it.
And often, its not easy to sync from server to server.
You may say, its better that I put the site in maintenance mode in old
server after copying the data to new server so that this does not
happen. Yes, its an alternative. But dont forget to give a notice in
the old site that you are migrating the server.
Still, there are problems as you may loose visitors. They may not come
to your site again seeing it is down. This may be happens mostly for
new comers.
Recently I faced such an issue while I was moving a forum which I
maintain. It is Projanmo Forum (http://forum.projanmo.com). I just
share with you the methods I have followed. Yes, I did not miss a bit
of data except I forgot to copy a folder from old to new which I had to
do later. Yes, my visitors/members also were not aware of such
migration except I put the forum for maintenance just for 10-15
minutes.
So the followings are steps I have followed and recommending to those
have not any better option. I assume that your site is a database
driven site.
Prepartion of Migration:
You should start your prepartion about three days before the final
schedule. If you are migrating to a shared server, consult your hosting
company
and make a schedule for migration considering the convenient of both.
- If you can edit the DNS Zone of you domain, change
the all TTL of your name server to 300 (300 seconds i.e. 5 mins). You
can find it easy If you use WHM. - Give an announcement in your site, that your website will go maintenance mode for xx minutes on xx date.
On the migration day:
- Consider the most off-pick hour of your website.
That is when there are no or less hits to your website. It may be after
midnight or something else. - Pack your whole site (home directory) and send it
to new server. If you use cPanel, then use its Backup Feature. If you
have root access to new server then use Remote Backup (SCP) method and
transfer to /home directory. I like it most :). Otherwise, you may use
Remote FTP. - Put your site in maintenance mode.
- After completion of transfer, restore it in your
new server. Here cPanel will save your life (if you old server also had
cPanel). Just one click will restore the whole site as it was in old
server. This may be true for other control panel too. But so far I have
used only cPanel. I think, if you own WHM, you know how to restore a
Backup. If you dont know click "Restore a Full Backup/cpmove file". - Now an access host to be added to mysql server.
Get the IP of old server and add it to your new servers mysql. You can
also do it via cPanel's Access Host links - Now login to your old server and edit the the
configuration file where your site's database configuration is stored.
Suppose it is db_config.php. You should get the database host there
which usually is localhost or IP. Now you just replace it by your new server's IP (or mysql server's IP). - Now your site in old server should be able connect
to the database of new server and your site is UP because maintenance
configuration is stored in database and as database is now on new
server, where maintenance mode is not enabled. - Now go to your domain registration panel. Their update the nameserver of your domain name by new server's names.
- Edit the DNS zone in new server and change TTL to normal values like 14400 or larger. Otherwise it huge increase server load.
- (Its an optional) Again edit DNS zone of old
server and change all A records. The exisiting A records are IP of old
server. Change it to the IPs of new server. This will tell the DNS
queries that the site is new server :-) .
If you maintain a website,
you may have to change you current hosting server for many reasons. It
may be that, their service is not good or uptime is low or you may
consider to go a server with better facilities or even you may move to
your own VPS/Dedicated server. All of the these requires that you move
your current website to the new server.
But problem arises as you update the nameserver for your domains to
point to new server but the new name servers do not propagate world
wide. In this case, some people will see the website from the old
server while some from new server. If it is a dynamic site like forum,
blog etc. when propagation is complete, its sure that some users will
complain that their posts/contents are missing.
It is because the visitors who visited the website from old server
submitted the contents there. But when they are getting the server from
the new server, they will not see the contents as you did not sync it.
And often, its not easy to sync from server to server.
You may say, its better that I put the site in maintenance mode in old
server after copying the data to new server so that this does not
happen. Yes, its an alternative. But dont forget to give a notice in
the old site that you are migrating the server.
Still, there are problems as you may loose visitors. They may not come
to your site again seeing it is down. This may be happens mostly for
new comers.
Recently I faced such an issue while I was moving a forum which I
maintain. It is Projanmo Forum (http://forum.projanmo.com). I just
share with you the methods I have followed. Yes, I did not miss a bit
of data except I forgot to copy a folder from old to new which I had to
do later. Yes, my visitors/members also were not aware of such
migration except I put the forum for maintenance just for 10-15
minutes.
So the followings are steps I have followed and recommending to those
have not any better option. I assume that your site is a database
driven site.
Prepartion of Migration:
You should start your prepartion about three days before the final
schedule. If you are migrating to a shared server, consult your hosting
company
and make a schedule for migration considering the convenient of both.
- If you can edit the DNS Zone of you domain, change
the all TTL of your name server to 300 (300 seconds i.e. 5 mins). You
can find it easy If you use WHM. - Give an announcement in your site, that your website will go maintenance mode for xx minutes on xx date.
On the migration day:
- Consider the most off-pick hour of your website.
That is when there are no or less hits to your website. It may be after
midnight or something else. - Pack your whole site (home directory) and send it
to new server. If you use cPanel, then use its Backup Feature. If you
have root access to new server then use Remote Backup (SCP) method and
transfer to /home directory. I like it most :). Otherwise, you may use
Remote FTP. - Put your site in maintenance mode.
- After completion of transfer, restore it in your
new server. Here cPanel will save your life (if you old server also had
cPanel). Just one click will restore the whole site as it was in old
server. This may be true for other control panel too. But so far I have
used only cPanel. I think, if you own WHM, you know how to restore a
Backup. If you dont know click "Restore a Full Backup/cpmove file". - Now an access host to be added to mysql server.
Get the IP of old server and add it to your new servers mysql. You can
also do it via cPanel's Access Host links - Now login to your old server and edit the the
configuration file where your site's database configuration is stored.
Suppose it is db_config.php. You should get the database host there
which usually is localhost or any other IP. Now you just replace it by your new server IP (or mysql server IP). - Now your site in old server should be able connect
to the database of new server and your site is UP because maintenance
configuration is stored in database and as database is now on new
server, where maintenance mode is not enabled. - Now go to your domain registration panel. Their update the nameserver of your domain name by new server's names.
- Edit the DNS zone in new server and change TTL to normal values like 14400 or larger. Otherwise it huge increase server load.
- Edit DNS zone of old
server and change all A records. The exisiting A records are IPs of old
server. Change it to the IPs of new server. This will tell the DNS
queries that the site is new server :-) .
Thats it for now. Any comment and correction are appreciated.
. Please move around this site and enjoy and also don't forget to send me a feedback.
Post new comment