WordPress 3.0 will be released very soon, and there are many websites that run WPMU versions of WordPress, that need to be migrated to new WP 3.0. I have no idea if the development of WPMU will continue in any form, but most likely it’s over and migration is a must. So, here is the step by step info on how to upgrade your WPMU to WP 3.0. Tutorial will assume that you use default installation of WPMU with default folder names, database prefixes and everything else.
Upgrade Procedure
Backup your current WPMU website installation and the database before you proceed with the upgrade.
- Start with ‘wp-config.php’. You need to add 2 new lines into it:
define('WP_ALLOW_MULTISITE', true); define('NONCE_SALT', 'unique_string_for_salt_use');Nonce salt is not part of WPMU 2.9.2, and you need to add that one. You can use salt that WPMU generated and stored in database (can be there, but also it might not be). It is the ‘nonce_salt’ key in the ‘wp_1_options’ table. You can copy value from that record to the the define. You can also use this from WP 3.0 installation you maybe have. Adding salt can be skipped and added at the end per recommendation of WP upgrade network process. There is one more define that is not needed, but….
define('MULTISITE', true);MULTISITE line is not needed, but in some cases it’s added with the fresh install of WP 3.0 Multisite. At least that was with Beta versions. I will investigate if it’s needed really or not.
- Next is ‘.htaccess’ file. Main part needed for WP is very similar, and the main difference is line 6 used for files. You can safely change only that line in your old ‘wp-config.php’. This is how the rewrite portion of the htaccess should look like now.
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] - Now you need to replace all WordPress files. To get the latest WP 3.0 go to the official WP website, but since it’s not released yet, you can get it from SVN. Delete folders ‘wp-admin’ and ‘wp-includes’, and delete files ‘wpmu-settings.php’ from root folder, and ‘blogs.php’ from ‘wp-content’ folder. Now you can copy over all the WP 3.0 files and folders, and replace the remaining files.
- Make sure that there is ‘blogs.dir’ in ‘wp-content’ folder. If you changed that using ‘wp-config’ check to see if those are still in the file and set properly.
That’s all the upgrading you need to do. After this, your website should be working. When you login for the first time, you will get a message that you need to upgrade network (that’s new name for site used in WPMU, and term site is replaced blog). Once you do that, everything should be fine. If something else needs to be done, WP will inform you during this network upgrade process.
Troubleshooting
If you use latest nightly build from SVN, things should be OK. There are reports that upgrade didn’t go smoothly for everyone with older builds and there were problems with prefixes used for tables in the database. In WPMU default blog was ID 1 and prefix wp_1_, and in WP 3.0 it’s still ID 1 but prefix is only wp_. With latest builds WP 3.0 sorts this out just fine, but if you have troubles with this check out the resources listed at the end of this tutorial. If you have any additional questions, ask in the comments.
Resources
- Rough Guide to upgrading WordPress MU 2.9.x to WordPress 3.0 Multi-Site
- Upgrading WordPress MU 2.9.2 to WordPress 3.0 with MultiSite
- WordPress Codex: Create A Network
Edit
- 2010.05.29: added MULTISITE define for wp-config.php.






Comment Link
When 3.0 finally drops, current WPMU users will simply upgrade to 3.0. They’ll receive the auto-upgrade notice as usual.
No need for migration at all, really.
Comment Link
Yes, I read today that there are some changes made for WPMU to pickup update automatically. I wasn’t aware that this was done last week when I wrote the article.
Comment Link
To be fair, Ron really only started working on the auto-upgrade Thursday night.
But the plan had been all along for the auto-upgrade to work.
Just letting you know.
Dev for WPMU as a separate installation has been halted since 2.9.2. Going forward, it will continue as part of WordPress.
Comment Link
I was upgrading my demo website to WP 3.0 so I can further test my plugins, so I wanted to offer a tutorial as a help to anyone who might wanna do it before WP 3.0 is released. Good thing is that everything works fine after upgrade, but bad news is that many plugins are broken (this is not only with WPMU->WP3, but for any WP2.9->WP3).
Comment Link
Worked like a charm!