Here is my second take on running WordPress and WordPress Multisite locally on my Mac (first is here). I just discovered Pow; "Pow is a zero-config Rack server for Mac OS X. Have it serving your apps locally in under a minute", and my first thought was "can I run WordPress on Pow?".  Well, here's how I did it (I'll also show you how to install MySQL, PHP 5.4 and Ruby 1.93 on Mac OS X Mountain Lion):

This guide is work in progress, I'll keep you updated on twitter


  • Mac OS X Mountain Lion. I did this on a fresh Mac OS X Mountain Lion installation.
  • Download and install Command Line Tools (Mountain Lion) for Xcode. If you're not already registered for a free Mac Developer account, do so.
  • Download and install Xquartz so that the png.h header exists for compilation of certain brews. Mountain Lion removes X11, which contained many headers.
  • Install Homebrew, "The missing package manager for OS X". Open Terminal, and from the command line run:
    ruby -e "$(curl -fsSkL"

There's going to be a lot of cut and past from now on, but in 15 minutes you're up and running with WordPress on Pow :).

One by one, copy the commands below and run them in Terminal


When you run mysql_secure_installation (line 7 below), answer Y to all the questions.

brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=whoami --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
mkdir -p ~/Library/LaunchAgents
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Add WordPress database and user to MySQL

mysql -u root -p

mysql> CREATE DATABASE wordpress;
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'Pa$$w0rd';
mysql> EXIT

PHP 5.4

PHP is no longer part of the default Homebrew repository, and hence you need to add the Homebrew-PHP repository. WordPress and Pow only needs mysql and php-cgi. If you'd like to add more features, run brew options php54 from the command line to see the available configurations.

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install php54 --with-mysql --with-cgi

Ruby upgraded using rbenv

The default Ruby version on Mountain Lion is a bit old (yepp, that's an understatement). Pow is a Ruby/Rack web server, and it runs best on the latest version of Ruby. rbenv in combination with ruby-build, allows you to install Ruby in your user space.

brew update
brew install rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source .bash_profile
brew install ruby-build
rbenv install --list
rbenv install 1.9.3-p327
rbenv rehash
rbenv global 1.9.3-p327

Pow and Powder

Pow was created to run Rails/Rack applications, but we want to run legacy applications on Pow (ie PHP / WordPress) and need the rack-legacy rack-rewrite gems.
Pow is easy, but Powder makes it even easier, with a lot of management commands for Pow.

gem install rack-legacy rack-rewrite
gem install powder
rbenv rehash
powder install


Ta-da, finally there, just have to grab wget first.
The file, saved in ~/Sites/config, is a configuration file with rewrite rules (think .htaccess) for WordPress. At the moment it doesn't support multisite, but I'm working on it. Forked the git below and added support for WordPress Multisite

brew install wget
mkdir ~/Sites
cd ~/Sites
git clone git:// config
tar zxvf latest.tar.gz
mv wordpress myblog
cd ~/Sites/myblog
ln -s ~/Sites/config/
powder link
powder open

Adding another WordPress site

Yes, you can :)

cd ~/Sites
tar zxvf latest.tar.gz
mv wordpress myblog2
cd ~/Sites/myblog2
ln -s ~/Sites/config/
powder link
powder open

WordPress Multisite on Pow

I highly recommend that you create a separate database for your multisite, so let's do that first

mysql -u root -p

mysql> CREATE DATABASE multisite;
mysql> GRANT ALL PRIVILEGES ON multisite.* TO wordpress@localhost IDENTIFIED BY 'Pa$$w0rd';
mysql> EXIT

next, install WordPress

cd ~/Sites
tar zxvf latest.tar.gz
mv wordpress multisite
cd ~/Sites/multisite
ln -s ~/Sites/config/
powder link
powder open

When you're finished adding your site to the multisite database and it's up and running, edit multisite/wp-config.php and add the following just above the line reading
/* That’s all, stop editing! Happy blogging. */

/* Multisite */
define('WP_ALLOW_MULTISITE', true);

You will need to refresh your browser to continue, then go to Tools > Network Setup.

In Network Setup, select Sub-domains (more about why, below), fill in the Network Details and click Install. On the next page follow step 1 and 2. You don't need a .htaccess file, added above handles rewrites.

Why sub-domains:

In Pow, once a virtual host is installed, it's also automatically accessible from all subdomains of the named host. For example, the virtual host added above can also be accessed at and, which is perfect for a WordPress Multisite installation.