Moving WordPress Part I

Moving WordPress Part I

First Post, The Second Time Around

Ok, I’m about to embark on my server moving adventure! I’m moving my entire davidseah.com domain from pair.com to futurequest.net, and I may do it yet again with MediaTemple in a few weeks to try them out. Here’s my live move notes, which should come in handy later.

Moving the Database

Here’s what I did to move the blog:

  • Disabled Mint stats package on all pages so it doesn’t access the database. I’m not going to be using it on the new server, will stick with Google Analytics for a while and see how that goes.

  • Changed Basecamp’s File Upload to use a different server. There are still some problems with old links though, so I’ll have to add a redirect later.

  • Moved all important files over (tar gz’d, ftp server-to-server). Had to nuke some, because the disk space limits on FutureQuest are pretty limiting (another reason to consider MediaTemple).

  • Recreated mailboxes on the new server, including the dozens of forwarding rules I use.

  • Locked out comments on the old server by modifying wp-comments-post.php to die() with a “sorry, posting comments is disabled” message.

  • Used mysqldump wordpress_db --opt > backup.sql to create a backup file. I had to use the --compatible=mysql40 switch, because the version of MySQL on FutureQuest is an older one.

  • Created database on the new server for WordPress, to restore the backup into.

  • Used mysql wordpress_db < backup.sql to import the data. No errors! Yay!

  • Used PHPMyAdmin, which I had installed earlier, to drop the tables I didn’t need from wordpress_db. These were mostly old stats from Mint and SpamKarma. Also ran REPAIR and OPTIMIZE just for the hell of it.

  • Edited the wp-options table in the wordpress_db, specifically the siteurl. I pointed it to the temporary URL for the new server. Then I went to my sites admin panel and set the blogurl in general options to the same. Why do this? If I don’t, then clicking on internal links sends me back to the OLD blog, which makes it difficult to test this one. Eventually I will change them back to point to davidseah.com.

  • I had to restore the auto_increment and eliminate spurious default values of ‘0’ for each table’s id, otherwise I got posting errors like Duplicate entry ‘0’ for key 1. There’s a bug in mysqldump where it does not preserving auto_increment when the compatible=mysql40 flag is set. All of the wp_ tables needed the default ‘0’ removed, and the ‘auto_increment’ flag set. I used phpMyAdmin to reset the value.

  • Deactivated / Activated Plugins, just for the heck of it.

Testing the Site

<

p>I disabled wp-cache and clicked through the following on the new server:

  • Checked blog categories one-by-one
  • Checked the “About Dave” links on the sidebar
  • Checked all the .htaccess redirects I have, to make sure they worked
  • Changed absolute links from https://davidseah.com/archives/… to just /archives/…
  • Checked FAlbum links and htaccess redirects
  • Checked comment links from the sidebar
  • Checked link to the New Media Group posts
  • Checked public RSS feed links
  • Checked private RSS feed link for Feedburner
  • Checked Google SiteMap Plugin
  • Checked robots.txt
  • Checked The Printable CEO download links
  • Checked links in the footer
  • Checked services that might be referring to graphics on davidseah.com (forums, etc)
  • Posted a comment…works, after restoring the auto_increment and default value issues I mentioned above.
  • Posted this post.
  • Scanned the directory listing on the old server to see if anything else jogs my memory…nothing that has to happen right away.

The only thing left to do is switch nameservers and cross my fingers.

6 Comments

  1. Ralph Dagza 17 years ago

    Damn!

    Thats a lot of hardwork

    but i will try it

    ——-

  2. Dean 17 years ago

    Hi, I was looking for a solid web host myself.  How does it compare to pair and futurequest.net.  My wordpress website has an Alexa ranking of about 60,000 and is now too slow.

  3. Dave Seah 17 years ago

    Dean: I’m on the (dv) base right now, on Media Temple ($50/month). With a little tweaking, it has been able to keep up with being dugg today. Unlike the (gs). However, it does take some elbow grease to maintain, and the customer response time from (mt), while good, isn’t as fast as futurequest or pair. FutureQuest tends to respond inside the hour, pair in a few hours, (mt) in a couple days.

    Some interesting factors arose from moving to the (dv) too, which was finding several plugins in my WP setup that were killing my performance. On a shared server these are masked, but on a (dv) it’s much easier to tell what’s going awry. You might find optimizing your WordPress installation will buy you some time.

    Plugins that caused me the greatest problems:

    <ul>
    <li>TanTan Reports (creates a giant 1MB+ cache entry in wp-options table, which gets loaded on EVERY PAGE, and caused excessive interprocess overhead / database migration problems)</li>
    <li>FAlbum (creates huge caches as a MySQL database)</li>
    <li>AdSense Deluxe Plugin (I’m keeping it active, though it creates some largish entries in wp-options)</li>
    <li>The WordPress Admin Panel also caches RSS feeds in the wp-options table, which adds a lot of overhead to wp-options, which again gets loaded on every page. I deleted the 10 or so cached feeds and replaced the admin index with a non-RSS pullin’ version.</li>
    <li>DLoads Pepper from Damon Parker (downloads are piped through PHP, which increases memory utilization by the size of the file itself…bad if you are getting hammered by hundreds of downloads at once. This is what got me kicked off FutureQuest)</li>
    <li>Mint Peppers in general…the more you add, the greater your database load will be. I’ve dropped most of them.</li>
    <li>PHP Markdown (I use this so I can’t get away from it, but it can be a memory and processor bear)</li>
    </ul>

    One of the best things you can do is install WP-Cache, which will substantially drop your server load. This has allowed me to continue to use PHP Markdown.

  4. Dean 17 years ago

    Thanks Dave, wordpress can crawl somethings with certain plugins.  I will probably look into getting a (dv) service.  Do they allow multiple websites and IP addresses?

    Yes, WP-Cache is awesome.

    Great site by the way, I’m an RSS subscriber.

  5. Ashish 17 years ago

    Hi,
    Saw this website while searching for guidance to move a wordpress site from my local server to a live server. Any special care required to do so?
    Out of curiosity I also wished to know why you moved from pair to futurequest to mt (of all the hosts) since response about mt on the forums has not been encouraging as against pair and fq who are known to be solid
    Thanks
    Ashish

  6. Dave Seah 17 years ago

    Ashish: You shouldn’t have too many problems if no one knows about the new server…if you’re running locally now, no one on the Internet is linking to it or using it. It’s only after you have the site running for a while that you need to be careful not to disrupt services, or to break incoming links.

    The reason I moved from pair to futurequest to mt is because of outgrowing the shared hosting. I wrote about this in a side note, actually: WordPress and Shared Hosting.

    Summary: Pair.com has sub-par MySQL database performance (at the time I left, their customer service noted this was one of their major bottlenecks). FutureQuest shared hosting was better, but expensive, and traffic spikes forced me to look for dedicated hosting, which was $199/month with FutureQuest. (MT)‘s new (DV) server had just come out, and it was $50/mo. I did have to tune the server considerably before it ran smoothly.