Welcome to the new design! Please report any bugs or issues, thanks :)
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.

Jeff Starr
About the Author
Jeff Starr = Creative thinker. Passionate about free and open Web.
The Tao of WordPress: Become your own WordPress guru.
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 »
The Tao of WordPress: Master the art of WordPress.
What's up with Plesk UI lately? Especially on Chrome it looks just awful, all kinds of broken. Come on Plesk devs get it together.
Things get stressful, I try to pray. Not always easy, but always helps to relax and regain focus.
Nice new speed checker at fastorslow.com.
Easy way to exclude certain tests from WP Site Health: Site Health Tool Manager
Excellent (and free) tool for getting tons of site SSL infos: whynopadlock.com
Everyone just stay home and hide forever. Brilliant idea.
Playing with Microsoft Edge browser on macOS. It's like 1998 all over again.