What initially started out as one Wordpress blog on my server has turned into six. I have a few blogs, my wife has a few, some friends and family have a few – they just started to add up. It grew organically. I didn’t plan it. I never intended to be a blog hosting service; it just kind of worked out that way.

I had deep seeded dread for each new Wordpress release because I would wind up having to update six separate installs. I am far too lazy to do that for long, so I set out to find a quick and easy way to keep six or so Wordpress sites up to date in the laziest way possible.

I did the usual Unix thing. I tried creating a single directory and then symlinking the files in each install back to the main directory. That didn’t work. Wordpress seems to have been specifically written to only support a one to one directory mapping. The symlinks always resolve to the install directory making it impossible to separate out the wp-config.php and wp-content files.

I tried small tweaks to getting the single directory way to work. I added some Apache Alias’, changed some FILE references to getcwd() in the code, but I finally gave up when I realised I was going to have to more or less rewrite Wordpress to get it to work… nah… pass.

The interwebs were not much help either. The only solution I could find was a suggestion to convert to Wordpressμ (Wordpress mu, mu standing for multi user).

I gave μ a quick look, and it looks impressive. However, the over head of a migrating blogs, and maintenance of a new system was more than I cared to undertake. I wanted to just symlink and be done with it.

Eventually, I just settled for doing it the old way: a shell script that copies things.

You point the script at a new wordpress zip download, and then give it a list of directories that are currently running wordpress instances. It extracts the files over the top of the old ones. It takes care not to do the wp-content directory so you don’t lose any templates or odd things you may have done there. It looks like this:

$ ./wp-propagate.sh wordpress-2.8.2.zip ./xiaocidian.com ./kristinrohan.com ./sassyseo.com

The script wont update the akismet plug-in that usually comes with new wordpress releases. Its always a good idea to backup first.

If you are in the same boat, you can download and use the script under the terms of the GPLv3. I use it on Linux, but it should work on Mac OS X too.