WordPress MultiSite Subdomains on MAMP

Developing WordPress sites on a local MAMP server provides flexibility, privacy, and security throughout the development process. Setting up a WordPress environment on MAMP is definitely worth the effort, especially if you’re building and testing multiple sites using WordPress’ built-in MultiSite functionality.

The easiest and recommended way of setting up WordPress MultiSite is to use sub-directories. So when you create a new site named “business”, it will be located at http://localhost/business/. Here’s a mini-tutorial on how to use sub-domains for your network sites.

Edit Mac hosts file

After installing MAMP, change the default Apache port to 80. Next, add your sub-domains to the Mac hosts file. To do this, open Terminal and type “sudo pico /etc/hosts” (without the quotes), and then enter your password at the prompt. Use the arrow keys to scroll down to the end of the hosts file and add the following lines:

127.0.0.1       example.com
127.0.0.1       site1.example.com
127.0.0.1       site2.example.com

Edit these entries to match the domain and sub-domains that you want to create with MultiSite. Add as many sub-domains as needed, now or later. Then save the file and exit by typing Ctrl+O, Enter, and then Ctrl+X.

Edit Apache config file

The next step is to add virtual hosts to your Apache configuration file. Open /Applications/MAMP/conf/apache/httpd.conf in a text editor and scroll down to the line that says “#NameVirtualHost *”. Replace that line with the following code:

NameVirtualHost *
<virtualHost *>
 ServerName example.com
 ServerAlias example.com *.example.com
 DocumentRoot "/Applications/MAMP/htdocs/"
 <directory "/Applications/MAMP/htdocs/">
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
 </directory>
</virtualHost>

Change each instance of example.com to match your domain, save the file, and then Restart Apache by clicking “Stop” and then “Start” in the MAMP control panel.

Intall & configure WordPress

Now to install WordPress by placing the WordPress installation files in your /htdocs/ directory, creating the database via phpMyAdmin (@ http://localhost/MAMP/), and editing wp-config.php with your database credentials. Then complete the install process by accessing http://example.com/wp-admin/install.php in your browser.

Next, enable MultiSite by adding the following line to your wp-config.php file, just above the line that says, “That’s all, stop editing! Happy blogging”:

define('WP_ALLOW_MULTISITE', true);

With that in place, return to the WP Admin and click on Tools > Network. On this page you will now see an option to use sub-domains for your site addresses. Make sure that’s selected, check the other details, and then click the “Install” button to make it happen. Note that you’ll see a warning message that says, “Wildcard DNS may not be configured correctly!” – we can ignore this warning because we know our DNS is correct.

Finally, complete the steps outlined there on the “Enabling the Network” page (i.e., create a blogs.dir folder and add the required code snippets). After that, re-login to the Admin area and go to Network Admin > Sites > Add New to begin adding your sub-domain network sites.

That’s it! You’re now rolling tuff with WordPress subdomains on a local MAMP development server. The sky’s the limit!