8

Install/Configure your own WordPress Multisite

Posted February 25th, 2012 in WordPress and tagged , by Dennis

or “How Not to Totally Screw Yourself”

wpms

After all this time since it’s been available, I’ve finally properly installed a WordPress 3.3.1 Multisite. What a learning curve… and not for the squeamish. That’s for sure. :) Again, this is not for the squeamish, as you’ll need to know your away around FTP, PHP, file permissions, the htaccess file and a few undocumented tricks that will REALLY frustrate you. Ready? Let’s begin… :)

Be Prepared

No WordPress installation is the same, yet there are some concepts you’ll have to keep in mind before making the transition to Multisite.

1) Do you want sub-domains or sub-folders?

This makes a BIG difference!… and neither choice is wrong. Just think HARD about what the end-result will be, make your choice and stick with it. Your Search Engine results will take a hit IF you decide one way and then alter it later. Just be cautious. Okay? Basically, you have a choice between:

http://sub-site.main-site.###/

OR

http://main-site.###/sub-subsite/

2) Okay. There IS no #2. :)

Why WordPress Multisite?

Honestly? It makes running multiple sub-domains or sites that run from the same URL a piece-of-cake. With the sophistication of MySQL, PHP, WordPress and simple Mod-Rewrite changes to your htaccess file… WordPress Multisite makes trivial the action of creating sub-domains. You will no longer have to manually create your sub-domain and install yet another instance of WordPress. WordPress Multisite takes care of it ALL! One install to run multiple sites. Who wouldn’t love THAT? :)

Installing WordPress Multisite

Actually, this part is pretty easy. Much easier than one would expect. The trick is to be sure your WordPress installation is located at the root. Yes, until WordPress makes some the necessary option changes to do otherwise. That means, if your WordPress installation is in a sub-folder, you are NOT a good candidate for MultiSite. You are NOT. :) . You’ll be better off trying to move your WordPress installation to the root-folder and dealing with the consequences of the move. Be Warned. :)

Since WordPress 3.0, you’ve been able to setup Multisite… but the SuperAdmin “look” has changed over the following versions. These instructions will be an account of using WordPress 3.3.1. Again, your experience may be different. :)

Once WordPress 3.3.1 is installed and running, simply run your favorite FTP client, open the wp-config.php file and add the following line just BEFORE the /* That's all, stop editing! Happy blogging. */ line:

define('WP_ALLOW_MULTISITE', true);

Now, just logout and login again. Voila! Multisite is up and running. Sweet! You made a backup of wp-config.php didn’t you? Well, you really should. Really!

Configuring WordPress Multisite

Take a look at the top Admin bar and open My Sites->Network Admin->Dashboard… from there go to Settings->Network Setup. Here, you will find the necessary edits that you will need to make for both the wp-config.php file and your htaccess file in order to FULLY complete your WP Multisite setup.  Again… you know FTP, don’t you. :) Copy those configuration strings and add them to your wp-config.php and htaccess file. BUT!

These additional configurations will cause your site to DEFAULT to a sub-domain configuration. You recall how your site will look from the “Be Prepared” section, didn’t you? OK. If you desire a sub-folder configuration, take a look at the wp-config.php and htaccess file additions. For a sub-folder configuration, change wp-config.php
define( 'SUBDOMAIN_INSTALL', true ); to define( 'SUBDOMAIN_INSTALL', false ); and change the htaccess replacement to:

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).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Adding Those Sub-Sites

From here, you can go to My Sites->Network Admin->Sites->Add New.

From here, add the new Site Address (No Spaces) and the Site Title and admin email address. Simple! From here, you should also get a hint as to how the final URL will look. If it looks like a sub-domain and you want a sub-folder or visa-versa, you’ll discover the potential “look” right  here. If it doesn’t look right, then you need to go back to your wp-config.php and htaccess file and make the necessary changes. You made backups… didn’t you? No? You fool!

Plugins and Other Gotcha’s

When dealing with WP Multisite, ALL plugins will have to be uploaded and “Network Activated” from the top Network level. Sub-Sites do NOT have the ability to upload/activate their own individual plugins. It’s the nature of the beast.

Still, one has to be VERY cautious as to what plugins will be available. Not every plugin works in the Multisite environment, so you will have to perform due-diligence to fully verify that they will work. Don’t just rely on ONE instance of a plugins verification.. you’ll need more than that. If it’s questionable (and you really need it), then give it a try at the top-level, but KNOW that it’ll work at the sub-level. You will HAVE to know.

In addition, one may be overly judicious in manually creating those sub-domains or sub-folders. DON’T! Do NOT manually create your own sub-directory or sub-domain through your web-hosting provider. Just don’t! You’ll be causing yourself FAR too much pain. Allow WordPress Multisite to perform those features “virtually”. The reason for those Mod-Rewrites in the htaccess file is so that you do NOT have to manually create those physical folders or sub-domains. If you do, then your web-server will use those empty sub-folders or empty sub-domains to display your website. Apache will use the physical domains/folders OVER the virtual domains/folders… which will be mostly empty… and your site will be blank or empty.

Lastly, when adding users to Administrate the domains, do NOT trust adding them as Super-Admin from the top-level domain… to be able to be Administer to the sub-sites. This on one bit me in the A$$ Big-Time. :) Be sure to go to each sub-site and ADD them as Admin for each sub-site you wish them to administer. It’s better to be safe than be sorry. But, there IS a MUCH better way to manage your Multisite Users (even though I found this a little too late :) : install the Multisite User Management Plugin. From their WordPress Plugin Page:

With this plugin, users are assigned a default role for each of your sites. You set the default role for each site and this plugin applies it.

In Conclusion

Let me know of any questions or concerns. I’m certain that I can answer them. OK? Cool. :) Take a good look at Create a Network from the WordPress Codex, How to Enable Multisite , and The WordPress and WordPress Multisite Manual at WPMUdev where I learned most of my information (a little too late, however).

8 Responses so far.

  1. Tammy Rogers says:

    Hi,
    Thanks so much for walking me through this. It was virtually painless unless the very end. I have the multi-site set up within wordpress. I have added 2 sites: 1 English (/en/), 1 French (/fr/).

    Basically, I am trying to build a french and english version of the site. I currently have a child theme (genesis) site loaded in the root directory which actually contains both sets of pages (eng & fre). I would like them to be in the separate sub-folders but I get “Not Found. The requested URL /en/ was not found on this server.” error when I try to access the new sites. They are listed under “my sites” but I don’t see any folder or files associated with them in the ftp. Do I manually uploaded that or what next?

    Thanks so much!
    Tammy

    • Dennis says:

      Tammy,

      Remember that section about “manually” creating those sub-folders (site.com/es or site.com/fr) through FTP? Don’t! If those folders ACTUALLY exist (if you look through your site using FTP), then WordPress Multisite gets confused. WPMS creates those folders (when you create sub-sites /fr/ and /en/) virtually… they don’t physically exist… it’s in the WP MySQL database. If they DO physically exist, then delete them through FTP.

      Now, do you understand WHY those folders shouldn’t physically exist? You do? Awesome! :)

      You’ll add themes and plugins through the Super-Admin… the top-level site. At the top-level, you can share certain themes (child or parent) for use by your sub-sites. Plugins act the same way and will need to be shared for use by your sub-sites as well. When you switch to Administer your sub-sites, you’ll find those themes & plugins available and will be able use them.

      I suspect these reasons are why you are getting “Not Found” Errors. Let me know if this helps.

  2. Tammy Rogers says:

    Thanks. Since you are being so very helpful…I haven’t created folder through ftp. They are invisible but I don’t see how to start building the pages, etc through the admin. I see settings, themes but my child theme is not showing and when I go to edit site that’s when I get the 404 error. I see under the network admin that genesis and my child theme are network enabled. So I tried a test post on my /fr/ sub-site, published and when I try to view – error 404.

    Assuming I figure out what’s going on, is there and easy way to rename all the pages I’ve already created in wp in the root folder? It seems so close yet…

    • Dennis says:

      Wow. I can see how this would be very frustrating…

      Let’s step back a bit and ask something a little more… fundamental: Have you tried activating the built-in “Twenty Ten” or “Twenty Eleven” Themes at the top-level? These are not “child themes”, so I would expect that when they are shared at the “en” or “fr” domain/folder level… then, I would expect they would work. If they DO work, then perhaps it is an issue with the Genesis Child-Theme.

      As far as WordPress Multi-Language, the most prominent option is a single WP install (not Multi-Site) and use the WPML (http://wpml.org/) plugin for additional language translation. This works with a SINGLE WP install without regard for any Multi-Site worries. You might even try the Genesis Translation plugin at http://wordpress.org/extend/plugins/genesis-translations/

      It really sounds like what you are trying to do should be easily achievable. Oddly enough, there may be some issues that I am not aware of. In the end, you may need to ask the creators of Genesis for more input.

      Let me know if you finally find a solution. I’d appreciate your observations…

      ~Dennis

  3. vikash says:

    MY dashboard,new post for the new sites are not working,,my main site is running as it is but new sites are not getting accessed..It displays the message that site hace been added but when i click on dashboard nothing happens.blanl page opens up.please help

    • Dennis says:

      Vikash,

      Send me a link to your site & sub-sites and maybe I can provide you with a better idea as to what is going wrong.

      ~Dennis

    • Peter G. says:

      A blank page means everything is WORKING! But you just need
      to go to your new site DASHBOARD and select a THEME. For a
      new site install, if you get “Page Not Found” error, there
      is something wrong. However, a blank page means everything
      is working, you just need to select a theme for the new site.

Leave a Reply