Skip to content

Instantly share code, notes, and snippets.

@DominikTo
Last active December 21, 2015 03:38
Show Gist options
  • Save DominikTo/6243237 to your computer and use it in GitHub Desktop.
Save DominikTo/6243237 to your computer and use it in GitHub Desktop.
Apache, MySQL & PHP on OS X 10.9 Mavericks

OS X 10.9 ships with both a recent version of Apache (2.2.x), as well as PHP (5.4.x), so you'll just have to install MySQL. To get everything up and running only a few steps are required.

Apache

First, you have to create a web root in your user account:

mkdir ~/Sites

Then add a configuration for your user:

sudo tee /etc/apache2/users/$USER.conf <<EOF
<Directory "/Users/$USER/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
EOF

If you want to use vhosts, you'll have to make sure that the vhosts config gets loaded:

sudo tee -a /etc/apache2/other/$USER-settings.conf <<EOF
Include /private/etc/apache2/extra/httpd-vhosts.conf
EOF

After that, configure vhosts as necessary in /etc/apache2/extra/httpd-vhosts.conf (don't forget to remove the examples in there).

PHP

PHP doesn't get loaded by default. So we'll also add it to our config:

sudo tee -a /etc/apache2/other/$USER-settings.conf <<EOF
LoadModule php5_module libexec/apache2/libphp5.so
EOF

You should also configure a few settings in /etc/php.ini:

sudo tee -a /etc/php.ini <<EOF
date.timezone = "`sudo systemsetup -gettimezone | awk '{print $3}'`"
display_errors = on
error_reporting = -1
EOF

To activate these settings you have to restart Apache:

sudo apachectl restart

If you also need PEAR/PECL, follow these instructions.

MySQL

MySQL is not shipped with OS X, so we'll have to install that manually. Instead of going for an installer package, we'll use Homebrew. Once Homebrew is installed, installing MySQL is as simple as:

brew install mysql

If you want to start MySQL automatically, Homebrew will tell you after installation how to do that by adding a symlink.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment