There are many ways to install PHP, MySQL & Nginx on Mac. Here we will be doing it using brew.
Installing PHP 5.4 (with FPM) on Mac OS X
Search for available PHP formulas (formula’s in homebrews are equivalent to packages in aptitude)
brew search php
It will return long list of php 5.2, 5.3, 5.4 packages. We need 5.4. Tap it using:
brew tap josegonzalez/php
brew tap homebrew/dupes
If you do not tap homebrew/dupes
you will get Error: No available formula for zlib
Before we build PHP 5.4, you may like to exercise options using:
brew options php54
We have built it using:
brew install php54 --with-fpm --with-imap --without-apache --with-debug
After long wait, you can verify php & php-fpm version using php -v
and php-fpm -v
respectively.
Adding PHP-FPM to startup routine
Please check exact plist filename in /usr/local/Cellar/php54/
cp /usr/local/Cellar/php54/5.4.15/homebrew-php.josegonzalez.php54.plist ~/Library/LaunchAgents/
To Start PHP-FPM:
launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php54.plist
To Stop PHP-FPM
launchctl unload -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php54.plist
Installing MySQL on Mac OS X
Run following command:
brew install mysql --enable-debug
In case you need mysql-workbench, please download it from here. It cannot be installed via brew.
Adding MySQL to startup routine
Please check exact plist filename in /usr/local/Cellar/mysql/
cp /usr/local/Cellar/mysql/5.6.10/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
To Start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
To Stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Manual Start/Stop
Start mysql: /usr/local/mysql/support-files/mysql.server start
Stop mysql: /usr/local/mysql/support-files/mysql.server stop
See other options – /usr/local/mysql/support-files/mysql.server -h
Usage: mysql.server {start|stop|restart|reload|force-reload|status} [ MySQL server options ]
Changes to MySQL Config (optional)
For security
mysql_secure_installation
For workbench
Following changes will make it easy to use MySQL WorkBench
ln -s /usr/local/Cellar/mysql/5.6.10 /usr/local/mysql
sudo ln -s /usr/local/Cellar/mysql/5.6.10/my.cnf /etc/my.cnf
Installing Nginx on Mac OS X
Run following command:
brew install nginx
Adding Nginx to startup routine
Please check exact plist filename in /usr/local/Cellar/mysql/
cp /usr/local/Cellar/nginx/1.4.1/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
To Start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
To Stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
Changes to Nginx Config (optional)
By default, Nginx setup expects you to define all virtual hosts in /usr/local/etc/nginx/nginx.conf
Edit default config file and following line to http{..} block
include sites-enabled/*.conf;
sites-available
and sites-enabled
folder to manage virtual hosts config.Troubleshooting
Finding default location of config/error files for PHP, MySQL & Nginx
I did not get any error but after getting used to Ubuntu-conventions, I struggled to find where are config/log files and other defaults are present.
3 commands below turned out to be life-saver:
- brew list nginx
- brew list php54
- brew list mysql
Brew’s list command shows all files/folders created by a package. Once you see output, you will notice, why I was getting lost!
If you come across any other error, feel free to use our support forum. We will try to fix it there.
Next: Install WordPress