.

PREVENT DOWNTIME! Seamless Site/Blog Move - VPS Bible #19

English   English (change)
  • Digg
  • Twitter
  • Technorati
  • del.icio.us
  • Facebook
  • MySpace
  • Reddit
  • StumbleUpon
  • LinkedIn
  • email

Set Up Unmanaged VPS (4 Newbies) - Part 19: Moving Day! How to Move Your Blog or Site

server rack image

Migrate your web site or blog to a new server with minimal problems or inaccessibility. This guide steps out a proven relocation procedure.

When I moved my site from my shared host to my shiny new VPS at Linode, this was a concern for me, particularly as I had a continually changing database. Scouring the web, I found some scant instructions but nothing thorough, and no tutorials that gave me confidence. So I asked at the Linode forum, and the process mapped out below is a recap of the advice given by the kind folks there, along with my own experience.

Set Up an Unmanaged VPS (4 Newbies) .. The V-P-S Bible

In 20 copy/paste steps .. from zero to hero, blank box to cute-as Linux server.

Scroll down for the full series index.

So, hey, shed shared & viva virtual!   Hope it helps.   the_guv

.. So, for this process, you can thank Linode forum users btmorex, Lykaon, kirbysdl and hybinet.

This guide refers to a shared-to-VPS move, but can be applied to any server-to-server move.

First up, Self-Service

DON'T TELL YOUR OLD HOST THAT YOU INTEND TO MOVE AWAY.

Sign up with a New Web Host

If you're not sure what type of host you need, VPS Bible Part 1: VPS (Virtual Private Server) vs Shared vs Dedicated will help you choose.

If you're going the unmanaged VPS route, read this bible from top to toe. If you are unmanaged, for the rest of this guide, I'll assume you've built your box. For shared, managed VPS or dedicated, your box is built anyhow, so let's skip on.

Create DNS Records

Basically, these tell a server to look for a domain.

If your new host doesn't allow DNS configuration, that's pretty poor. Else you're with a shared server, in which case you get what you pay for. For those who can perform DNS administration ..

Add DNS records in your control panel so, for example, with Linode or Slicehost that's done in the DNS Manager. You can refer to VPS Bible Part 9: Add a Domain Zone to Your VPS for details and an explanatory video. Give everything a really low TTL (time to live) value. If you have any MX or other DNS records with your current host, replicate those.

Don't worry, this doesn't make your domain resolve to the new host prematurely, but does prepare it for the migration.

Twin the Old Site or Blog

Duplicate your site or blog's file structure on the new server, create & link any databases and import your data within.

Web Site & Blog Setup Resources

Most of these tutorials have video guides as well as the copy/paste how-to. Note: some are Nginx-centric, but that's generally regarded as the most efficient web server anyhow.

Amend Hosts File to Test Site or Blog

Top trick, this. You can alter a file on your PC to redirect your URI to the new server, just for you. This doesn't effect the original site, nor its general traffic (unless they've changed their host files too!)

Windows

Goto my c: > windows > system32 > drivers > etc and open hosts with a text editor.

Linux

Goto etc > and open hosts with a text editor.

Mac

I don't know. Please lemme know!

You'll know it's the correct file because it'll have an entry or two like:-

127.0.0.1	localhost

... and that is the format you want for the new lines you have to add to the file. So add something like:-

12.34.56.78  domain.com
12.34.56.78  www.domain.com

... swapping the IP for your new IP, and the domain for yours.

Upon saving the file, when you surf to domain.com, instead of taking you to your old server, it will take you to the new one, and you can fully test your site's functionality.

(I told you that was top ;) )

NOW TEST YOUR NEW SITE'S FUNCTIONALITY.

But don't administer the wrong site: after testing, don't forget to delete the new hosts entry, else comment it out with a # at the beginning of the line. And restart your web browser.

Resolve Email

Move your email accounts from your current host.

If you want a simple, spam-free solution with no web server resource cost (ie no personal mail server), check out the VPS Bible Part 18: Google Apps for Domain-Specific Email.

Test your email.

Create A or AAAA Records

This is the key to a seamless move, which is particularly important if, for example, you host a forum or receive a lot of blog comments.

What we're going to do is to set up your new host to resolve the domain call to your old host. Basically, this eliminates the possibility of writing to more than one database while, for example, the nameservers propagate or Google's global servers refresh your new domain details.

In the new server's DNS settings, add two A/AAAA records using these guidelines:-

Hostname IP TTL (Time to Live)
domain.com old web host IP address shortest option
www.domain.com old web host IP address shortest option

When you save your options, you may find one of the hostname fields is blank. That's normal.

Point Domain to Nameservers

Goto your domain registrar account and look for the Nameserver option. Renew the data.

For example, with Linode, bless, change to ns1.linode.com, ns2.linode.com, ns3.linode.com and ns4.linode.com. You'll find your new web host's nameserver details easily enough.

Now we are awaiting full propagation, at all server points around the world. I have no idea how long that takes, but about 72 hours is generally reckoned, so allow for 4-5 days to be safe.

MOVING DAY!

Go back to those A Records we created, replacing the old host IP to your new host IP. Set the TTL to the shortest possible 'time to live'. But before you click OK ..

Take a final backup of your old database and import the data into your new one.

.. And now you can click OK on those new A records.

While your A record changes will update the new host nameservers within minutes, it takes up to 72 hours for full web-wide propagation. You may find new data records in the old database, so you'll have to export and import those strays.

Note: At Linode, updated DNS records take effect every 15 minutes. So if you edit an A record at 2:32, it'll take until 2:45, plus the time period specified in the TTL, for the update to be visible to the world. Careful timing will give you the least downtime.

Final Checks

If you completed the previous testing properly, there should be no surprises. Then again ..

After the time period specified in the TTL, check your site to ensure everything works. Because your local nameservers may not yet have resolved with the new A record data, and so that you can be sure you're looking at the new, not the old, web application, use the host file trick.

Shed Shared, Viva Virtual!

Whatever kind of web host you've moved to, you can cancel the old host 4-5 days after moving day. Your breathing will gradually shallow out. Take tea!

Virtually Done

This series is pretty much complete, and I'm definitely gonna be spending more time down the pub.

However, as a round-up, VPS Bible Part 20: Blogroll, Links, Credits, Resources will list some of the best resources on the web for anything Linux or VPS. Plus it's a bit of a thank you to all those whose advice has helped me to go from VPS newbie, a few months ago to, well, senior newbie. Hey, you be the judge, but I sure ain't a sysmin.

By way of a follow up, and as promised in VPS Bible Part 17: Nginx Control Panel Workarounds, I'll be publishing some appendix guides too, showing you how to administer your VPS without relying on bloatware like cPanel.

Here's the you-know-what ...


SETUP an Unmanaged VPS (4 Newbies) .. The V-P-S Bible

Serve multi sites & blogs on a budget .. at the fastest possible speed .. with the least downtime .. in the most secure environment .. and future-proofed for easy admin.

That's what the VPS Bible is about, stepped out in simple copy & paste guides.

From high traffic WordPress blogs to startup web hosts, here's what you need.

Set it up?  Click here for the 21 part follow-up .. V-P-S Admin

  1. * Includes video tutorial.

  2. Not linked = not published. Won't be long. Fix a feed for updates.


If you liked that ...
... maybe you'll like these?

.