There are many ways to install PHP, MySQL & Nginx on Mac. Here we will be doing it using brew.
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.
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
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.
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
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 ]
mysql_secure_installation
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
Run following command:
brew install nginx
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
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.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’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
Comments
Not so far I have found new cool tool to work with mySQL on mac os x – Valentina Studio. Its free edition can do things more than many commercial tools!!
I very recommend check it. http://www.valentina-db.com/en/valentina-studio-overview
You can install Valentina Studio (FREE) directly from Mac App Store: https://itunes.apple.com/us/app/valentina-studio/id604825918?ls=1&mt=12
Thanks for sharing. I will have a look at it.
Have you tried mysql-workbench? http://www.mysql.com/products/workbench/
Yes of course. But I agree to some people from this discussion http://www.reddit.com/r/webdev/comments/1fxcyd/try_valentina_studio_a_new_free_gui_manager_for/ that Workbench sometimes is awful.
BTW, check this video http://www.youtube.com/watch?v=1wAd1IrwKAs
I recommend Sequel Pro, which I find to be by far the best free MySQL-manager for OSX, check it out if you haven’t tried it yet: http://www.sequelpro.com/
curl: (56) Recv failure: Connection reset by peer
Error: Download failed: http://downloads.sf.net/project/libpng/libpng15/older-releases/1.5.14/libpng-1.5.14.tar.gz
—-from china
Looks like sourceforge mirror from which download in progress timed out. You can try again whole commands.
Such errors should be temporary!
checking for libpng… configure: error: `libpng-config’ not found;
either set the LIBPNG_CFLAGS and LIBPNG_LDFLAGS environment variables,
or pass `–without-png’ to the `configure’ script.
make: *** [setup] Error 1
READ THIS: https://github.com/mxcl/homebrew/wiki/troubleshooting
—————————————————————————–
This is the error I get when I try to install php. What should I do to solve this?
Seems like it might be easy to solve but I am really new to this
From above error looks like you do not have LIBPNG library.
Try installing libpng or libpng12 package via brew first.
If it doesn’t work after that as well, just you share brew commands you have used?
Brew link is pointing to “Page not found”
Is there any detail tutorial on Brew, like what is brew, its pros/cons and how to install and use?
Fixed. There homepage is changed to http://brew.sh/
Brew is package-manager. For pros/cons, you may Google. If you are familiar with MacPorts, you can think of its a better (IMHO) replacement to MacPorts.
Thank you for good tutorial 🙂