Adding a Virtual Host to the Apache Configuration - dummies

Adding a Virtual Host to the Apache Configuration

Before you enable the WordPress multisite feature, you need to edit and configure Apache server files by adding a hostname record pointing at your web server in the DNS configuration tool available in your web server administration software (like WebHost Manager (WHM), a popular web host administration tool). The hostname record looks like this: * (where is replaced with your actual domain name).

If you can, perform the configurations yourself. If you don’t know how, are uncomfortable with adjusting these settings, or don’t have access to change the configurations in your web server software, you need to ask your hosting provider for help or hire a consultant to perform the configurations for you. Web hosting providers have support staff to help you with these things, if you need it — take advantage of that!

Follow these steps to enable the wildcard subdomains in Apache:

  1. Log in as the root user to your server.

  2. Open the httpd.conf file or the vhost include file for your current web account.

  3. Find the virtual host section for your domain.

  4. Add the wildcard subdomain record next to the domain name.

    It will look like this:

    ServerAlias *
  5. Save the file.

  6. Restart Apache.

You will also need to add a wildcard subdomain DNS record. Depending on how your domain is set up, this can be done at your registrar or your web host. If you simply pointed to your web host’s name servers, then you can add more DNS records at your web host in the web server administration interface, such as WHM (Web Host Manager).

You also should add a Canonical Name (CNAME) record with a value of *. The CNAME is a record stored in the DNS settings of your Apache web server that tells Apache you would like to associate a new subdomain with the main account domain. Applying the value of * tells Apache to send any subdomain requests to your main domain, and from there, WordPress looks up that sudbomain in the database to see whether it exists.

Networks require a great deal more server memory (RAM) than typical WordPress sites do, simply because multisites are generally bigger, have a lot more traffic, and use up more database space and resources because multiple sites are running (as opposed to just one with regular WordPress). You aren’t simply adding instances of WordPress. You’re multiplying the processing and resource use of the server when you run the WordPress multisite feature. Although smaller instances of a network run okay on most web hosts, you may find that when your network grows, you need more memory. To start with a hosting account you need access to at least 256MB of RAM (memory).

For each site created, nine additional tables are added to the single database. Each table has a prefix similar to wp_BLOG-ID_tablename (where BLOG-ID is a unique ID assigned to the site).

The only exception to this is the main site. Its tables remain untouched. With WordPress multisites, all new installations will leave the main blog tables untouched and number additional site tables sequentially, with every new site that is added to the network.

Much discussion about the database layout has occurred in Trac, WordPress’s codebase management system, and in the forums. Although it may seem unwieldy, it will scale appropriately. Limitations on database size have more to do with the server and database management tools. The average users build a small to medium-sized network, which usually needs no more than a VPS account.