Upgrading WordPress MU 2.9.2 to WordPress 3.0

WordPress 3.0 was officially released today. The main feature of the WordPress 3.0 is the merge of WordPress MU. In this post, I’ll cover upgrading WordPress MU 2.9.2 to WordPress 3.0. You should always backup your databases before attempting to upgrade WordPress. If you are not sure how to backup your database, you can find complete instructions in the WordPress Codex. If you are upgrading from WordPress 2.9.2 standard and want to enable multisite, then follow the instructions on this post instead.

Upgrade WordPress:

You can upgrade WordPress by following the link in the update message at the top or by going to the Upgrade screen under Tools. Return to the dashboard after upgrading. You will have to login again after the upgrade.

Update wp-config.php:

WordPress encrypts cookies but you must add NONCE_SALT code shown at the top of the admin area to wp-config.php. For example: define( 'NONCE_SALT', 'a<u3S[ g<.4I)#p^-iy?sbb3JPu+W~-Zk|aPLMN[TvoiHIKGI_bbB-h?iliBb2ra' ). This code will be unique to your installation. Add it above the line that says: /* That's all, stop editing! Happy blogging. */

define( "WP_USE_MULTIPLE_DB", false );

define( 'NONCE_SALT', 'a<U3S[ g<.4I)#p^-iy?sbb3JPu+W~-Zk|aPLMN[TvoiHIKGI_bbB-h?iliBb2ra' );

/* That's all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

Update Network:

Follow the link at the top to the Update Network screen or browse to the Update screen under Super Admin to update all sites(blogs) in your network.

Update Rewrite Rules:

The wp-content/blogs.php file was deprecated in WordPress 3.0 and you must update the rewrite rules to use wp-includes/ms-files.php. Replace wp-content/blogs.php with wp-includes/ms-files.php in .htaccess and delete wp-content/blogs.php.

RewriteEngine On
RewriteBase /

#uploaded files
RewriteRule ^(.*/)?files/$ index.php [L]
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
RewriteRule ^(.+)$ $1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

<IfModule mod_security.c>
<Files async-upload.php>
SecFilterEngine Off
SecFilterScanPOST Off
</Files>
</IfModule>

53 thoughts on “Upgrading WordPress MU 2.9.2 to WordPress 3.0

  1. This was a good tutorial. Considering how long the beta has been out and the fact I tried to mention it in WP-hackers, was pretty surprised that they would automate MU in WP for the masses but couldn’t give a few sentences about these errors. Fine for me, but had a hard time telling others what to do.

    I added your tutorial to my site. Very helpful and necessary for the WP 3.0 upgrade.

  2. Pingback: Wordpress 3.0 Released | 603

  3. So what if I can’t find the “wp-content/blogs.php”-file? I had WPMU 2.9.2 before and updated the site just now. But I can’t find that php-file. Can anyone help me? :-P

      • Hi again! Thanks for the reply.

        I can’t find the file which I find strange, but there is something like that called in my DB (just checked with PHPMyAdmin).

        Another thing that is strange is that there isn’t any “wp-includes/ms-files.php” file in my directory.

        And at last, I stil have the message in admin menu where it says that I should remove blogs and replace it with includes. Pretty strange. Any ideas of how I can fix this?

      • Hehe, sorry. But I just found the ms-files.php & blogs.php in the directory where they should be. Also I’ve changed the lines in .htaccess. But stil the “warning” (the one which says I should replace blogs with ms-files) is in my dashboard. So I figure something is wrong, right?

          • Ah, thank you very much! Didn’t delete the file, just in case, so I renamed it.

            Thanks again! Much apricheated.

            PS. The developer team should made this a little simples for guys like me that aren’t 100% sure with WordPress. :-)

  4. Ok, done… but it kind of disturbs me that the wp-config files are different if you’re coming from WPMU than if you’re coming from WordPress. Don’t these config files need to become the same eventually?

  5. Thanks for the post. I’m currently working behind the scenes on a website change based on WordPress MU and the upgrade went very well! The instructions helped a lot!

  6. Hi,

    I did an auto update and it said everything went successfully. I have no error messages about .htaccess file etc.

    So do I still need to do this? … If I had not happened upon this post, I’d have no idea at all .. so wondering if this is even necessary.

  7. I’ve done all this thanks to this post.

    I am getting a werid error which I’ve posted on wordpress mu forums.

    When I try to add the category via single post method I get the following error.
    “Fatal error: Cannot use object of type WP_Error as array in C:\wamp\www\wp-admin\admin-ajax.php on line 242″

    When I try to add it via Categories or Link Categories I get the following error.

    “Could not insert term into the database”

      • I disabled all the plugins and I still go this error. I had to go to the database, terms table and a new row (enter id only) then delete it. It then started to add categories. I am creating school websites and need to do this process each time in the process table. Its a very weird error. Its like the database terms table gets locked when it is first created.

  8. Hello,

    I just did everything you mentioned here. However I am now missing my images?

    Are you sure we have to delete the blogs.php? That doesn’t make any sense.

  9. Pingback: Andrew’s personal weblog» Blog Archive » Corporate blogs upgraded to WP 3.0

  10. Pingback: Actualizados a WordPress 3.0 | Mangas Verdes

  11. I changed the .htaccess file and it got my avatars to work again but it only works in internet explorer. They don’t show up on firefox. I also got this message now when trying to upload an avatar Catchable fatal error: Object of class WP_Error could not be converted to string in /home/ab9988/public_html/wp-content/plugins/buddypress/bp-core/bp-core-avatars.php on line 281

  12. Pingback: About This Web Site – Wordpress Installation Upgrades | Lord Fairfax Community College

  13. Pingback: Upgrade na WordPress 3

  14. Pingback: Avoiding Wordpress Upgrade HeartacheLatest WordPress News | Latest WordPress News

  15. Pingback: Wordpress 3.0 - Mark Waters

  16. Pingback: Mettre à jour un site WordPres 2.9.x MU en version 3.0 | Les Wordpressiens - Spécialistes wordpress - by CNSX

  17. Pingback: WordPress 3.0 Upgrade: What to Expect | Webdesigner Depot

  18. Pingback: Scarův brloh » Blog Archive » Wordpress mu 2.9.2 upgrade na Wordpress 3.0

  19. Pingback: Wordpress 3.0 update

  20. Pingback: BioWS Wordpress updates on Friday 7/9/2010 « BioWS

  21. Pingback: Wordpress 3.0 with Multisite is Live « BioWS

  22. Great post — one question: Do you need to also add the following to wp-config.php:
    define( ‘MULTISITE’, true );

    I’m getting database errors, but am going back through the steps to see what I may have done wrong.

  23. Can I upgrade WordPress MU 2.7.1 directly to WordPress 3.0 using the automated process and minor tweaks outlined in this article? Are there any gotchas I should know about?

  24. Just upgraded my WordPress MU install to WordPress 3 and I had the same image problem as Emil.

    Did a quick google search, found your post, fixed it in about 2 minutes with your handy .htaccess update tip.

    Thanks a bunch!

  25. Ok, I’m going to ask the stupid question, since I know somebody else is dying to: Where exactly should this .htaccess file be, and other than the snippet above, what (if anything) should be in it?

    I’m absolutely aware that this is probably available with a bit of googling, and I’m definitely about to google around for this myself. I just figure I can save someone else some time and/or tears by asking for a quick answer or helpful link here, since I’ve grepped all over my very functional WPMU 2.9.2 installation (cloned on a local test machine from a production installation by a former coworker) and not found this file.

    Thanks in advance for any help, and thanks retroactively for all the great information that’s already here.

    • The .htaccess file should be in your document root (or the same directory where WordPress is installed). You don’t need anything else in the .htaccess file.

  26. Pingback: links for 2010-08-17 | Digital Distractions

  27. Thanks for the step-by-step guide. I’d like to chime in with two notes:

    First, I can confirm that the steps in this guide also work if you’re upgrading from WPMU 2.92 to WP 3.01.

    Second, if you’re using Donncha’s Domain Mapping plugin, you’l need to upgrade it after you finish the upgrade to WP 3.01.

  28. Pingback: Actualizar Wordpress-mu a wordpress 3.0.1 | Adr-Avatar

  29. Pingback: Rusmana Blog » Upgrade Wordpress ke versi 3.0.1

  30. OMGsh! This is exactly what I needed to read right now. I have been struggling with this for the last %^&*#@ hours! The .htaccess was exactly what had not been updated or had been updated incorrectly…not sure. Anywho, your tutorial restored my images and my sanity! Thanks. :-)

    Blessings,
    Wendy Merritt

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>