Before you start, you’ll need:
- WordPress installed in your root directory.
- To follow these directions from the Codex to enable Multi-Site.
- The WordPress MU Domain Mapping Plugin – trunk version – from step 1 of this tutorial. Follow the instructions for steps 1-3 there to enable the plugin and get it working.
Step #4 is where things get tricky, and it’s also where things may be different for your own server. This is what is especially difficult about using Multi Site – there is no set formula that is guaranteed to work for everyone.
With that said, these are the steps I took to enable WordPress Multi Site on a shared hosting plan.
- Create your sub-site as a sub-domain from the wp-admin panel of your main domain (ie, seconddomain.primarydomain.com). You do this by going to Super Admin > Sites > Add New. Make sure that you can log in and that everything works. I don’t recommend making too many customizations at this point, because it could take a couple of tries to get everything working correctly.
- Point the DNS of your second domain name at the name servers of your primary domain. Don’t forget this step, or all you’ll end up with is “Server cannot be found”! This was my mistake, and it took me 2 days to realize it. (Yeah, I can be dumb as a rock sometimes!)
- “Park” your secondary domain on top of your primary domain name using your web host’s cPanel. This points your second domain to your first domain without the need to worry about any settings, which is why it’s better than trying to add it via an Add-On Domain. If, at this point, you try to visit seconddomain.com in your browser, it *should* redirect to your primary domain. If it doesn’t, you know you have a problem.
- Now you can go back to Otto’s handy-dandy instructions and map your domain name. Essentially, you log into the secondary site and go to Tools > Domain Mapping. This step is what turns seconddomain.primarydomain.com into seconddomain.com.
- I recommend you read through the rest of Otto’s tutorial [linked above] before you try any of this.
- Keep in mind that you will need to go in and separately set the DNS and “park” EVERY domain name you wish to map this way. This is the drawback of not using the method described in the next paragraph.
Most of the tutorials I read through kept talking about adding A records or CNAMES. Which is a nice way to do it, but essentially requires that you be on a VPS or at the very least have a static IP address. That’s not a feature that’s usually possible on a shared hosting server, though, so that makes it hard to do. Luckily, with the method described above, you shouldn’t need to mess with any of that, even if you WILL need to set up each domain name separately.
Now for some disclaimers:
- This post is offered without any sort of warranty at all, so follow these steps at your own risk. I won’t be responsible if you mess up your site or your server.
- With that said, I can try to help if you’re having trouble but I am by NO MEANS an “advanced” user of WordPress. I’ve merely picked up a few things in the 4+ years I’ve been using it.
- WordPress Multi Site is NOT really recommended for a shared server install. This is because your provider will get very upset with you if you start creating hundreds of blogs under your shared plan. If, however, you are like me and merely have 4 or so low-traffic blogs that you’d like to keep updated with a minimum of fuss, then this method could work for you(*). But if you are unsure at all whether this will work on your hosting plan, please contact your provider and ask first.
- And with THAT said: if you *do* use the above post in order to do something crazy like start installing hundreds of blogs, I WON’T be held responsible for that either. Your hosting provider could – and would be completely justified if they did – disable your site entirely if you abuse it. Be smart, and don’t be a dick.
- (*) If you do only want to host a handful of your own blogs, you’ll want to go into Super Admin > Options > Registration Settings and set “Allow new Registrations” to disabled. This should be off by default (at least it was for me), but it doesn’t hurt to make sure.
I don’t think I’ve forgotten anything, but feel free to ask questions if you think there’s something missing. (It’s late, and I’m tired, so anything is possible.) And for my regular readers, if you’ve read this far: Wow. I’m impressed. Remind me to buy you a drink the next time we meet. Also: we’ll be back to our regular book-blogging mischief tomorrow. Thanks for reading.