Super Plugin Sale! Your Choice: BOGO or 30% Off »
Web Dev + WordPress + Security

Perishable Press Server Migration

As you may have read, we recently transferred our online empire to a new server. Although the overall process went smoothly enough, several learning opportunities unfolded during the migration of our humble Perishable Press website…

The setup

First, the setup. Perishable Press is a WordPress-powered website. On our previous server, we were running a Fantastico-installed WordPress version 2.0.2, upgraded from version 2.0. Permalinks were enabled and everything was running smoothly. Our database was only 13MB in size and around 12MB of that was disposable statistics information from WP-ShortStat and Bad Behavior. The crucial part of our database was a friendly 1MB in size.

More importantly, we were switching servers only — not domain names. Apparently, switching domain names for a WordPress install requires combing the database for all instances of the original domain name and replacing each with the new information. Fortunately, we were only switching servers. This enabled some pre-planning that truly simplified the process.


First, we prepared backup copies of everything and then worked from copies of the copies. We downloaded everything — every file, database, setting, and configuration — we even exported individually copies of each and every table in the database, and then exported them again in gzipped format. Then, when we setup the domain space on the new server, we used the exact same username and password effective via the previous server. This enabled us to replicate the exact database names as well.

Next steps

After domain name propagation, we uploaded a complete copy of our original Fantastico-prepared WordPress-powered Perishable Press website to the new server. Then, after restoring the databases, we checked the site and… nothing — the Dreaded White Screen of Death. Something was very wrong.

After a few hours of tweaking, it became apparent that the problem was with Fantastico. Even worse (or better, in hindsight), Fantastico on the new server was sporting WordPress 1.5.1! So that was out.

After a cup of tea, we decided to start fresh. After deleting all files and database remnants from the new server, we uploaded a fresh manual-install version of WordPress 2.0.2 and double-checked the upload (see Update for more infos). We then created the databases and manually installed the fresh copy of WordPress.

As expected, this provided us with a nice, clean WordPress install that queried a database architecture that was an exact replicate of the original. Primed and ready, we dropped the default wp-posts table and imported our own. Success. After exporting a quick backup of the new “empty” database, we dropped it entirely and imported our original, “fully pimped” database. Checking the site revealed relative success. Everything that could work did work. It quickly became obvious that there were several plugin issues that needed our attention.


After deleting all uploaded plugins, we began uploading them, one at a time, activating them, and checking the site after each one. This was tedious, and several plugin backup copies were somehow corrupted (see Update for more infos), requiring us to upload fresh copies. On several occasions, in fact, plugin errors were due to corrupt or truncated backup copies of the plugins themselves.

After all plugins were successfully activated and operating smoothly, we finished the migration by uploading all of the non-WordPress files, such as images, themes, JavaScript, and everything else. Eventually, however, we found success — Perishable Press had been relocated to a new server. Very educational indeed.


After successfully migrating to the new server, we spent some time cleaning up and organizing leftover files, backup copies, and the like. While consolidating backup copies of WordPress, it became apparent that the original downloaded copy of Perishable Press was incomplete. In fact around twenty PHP files had been truncated and were incomplete. This may very well have been why the first attempt at site transfer was unsuccessful.

About the Author
Jeff Starr = Fullstack Developer. Book Author. Teacher. Human Being.
Banhammer: Protect your WordPress site against threats.
Perishable Press is operated by Jeff Starr, a professional web developer and book author with two decades of experience. Here you will find posts about web development, WordPress, security, and more »
Wizard’s SQL for WordPress: Over 300+ recipes! Check the Demo »
Crazy that we’re almost halfway thru 2024.
I live right next door to the absolute loudest car in town. And the owner loves to drive it.
8G Firewall now out of beta testing, ready for use on production sites.
It's all about that ad revenue baby.
Note to self: encrypting 500 GB of data on my iMac takes around 8 hours.
Getting back into things after a bit of a break. Currently 7° F outside. Chillz.
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.