This guide shows how to set up a PHP and MySQL development environment using OSX's built-in Apache, using Homebrew to install necessary components. With this strategy, you can use different versions of PHP for certain virtual hosts.
VirtualHostX is a convenient way to manage development sites, but not required.
Install homebrew-php
Setup the homebrew/dupes
tap which has dependencies we need:
$ brew tap homebrew/dupes
Setup the homebrew/versions
tap which has dependencies we need:
$ brew tap homebrew/versions
Then, run the following in your command-line:
$ brew tap homebrew/homebrew-php
Note: For a list of available configuration options run:
$ brew options php56
Once the tap is installed, you can install php53
, php54
, php55
, php56
, php70
, or any formulae you might need via:
brew update
brew install php56
brew install php56-mcrypt
brew install mysql
mysql.server start
The mcrypt extension is required for some PHP frameworks such as Laravel.
Optional: Install other extensions or versions of PHP
brew install php56-xdebug
brew install php55
brew install php55-mcrypt
Test PHP:
/usr/local/Cellar/php56/5.6.0/bin/php --version
This should yield PHP 5.6.0 (cli)
.
Edit your ~/.bash_profile
by adding the line:
alias php='/usr/local/Cellar/php56/5.6.0/bin/php'
alias php56='/usr/local/Cellar/php56/5.6.0/bin/php'
Test your PHP alias:
php --version
This should again yield PHP 5.6.0 (cli)
.
Configure VirtualHostX to use Built-in Apache instead of MAMP.
Create a new site with custom virtual host directives:
LoadModule php5_module /usr/local/Cellar/php56/5.6.0/libexec/apache2/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.html index.htm index.php
You can achieve the above without VirtualHostX by manually editing:
/private/etc/hosts
/private/etc/apache2/httpd.conf
/private/etc/apache2/extra/httpd-vhosts.conf
With a MySQL client such as Sequel Pro, connect to MySQL at 127.0.0.1
with the username root
and no password. Change the password if you like.
Enable write permissions for Apache by changing its User and Group settings.
Edit /private/etc/apache2/httpd.conf
:
User your_mac_username
Group staff