FeaturesWP CloudPricingEE CLIContactMy Account

Features

Team Access & User Permissions

Server Setup & Management

Site Creation & Management

Deployments & Developer Tools

Firewall Protection

Speed & Caching

Backups & Recovery

Logs & Monitoring

Create WP Cloud Sites

All Features

Read Documentation

Install

Installation Guide

FAQ

Roadmap

Explore EE CLI

Resources

Commands

Handbook

Blog

Community

Forum

EasyExperts

Tutorials

Subscribe

Github

CLEAR

Start For Free

separator Tutorials separator Mac separator Brew’ing PHP, MySQL & Nginx on Mac OS X

Topics

On this page

Installing PHP 5.4 (with FPM) on Mac OS X

Adding PHP-FPM to startup routine

Installing MySQL on Mac OS X

Adding MySQL to startup routine

Changes to MySQL Config (optional)

Installing Nginx on Mac OS X

Adding Nginx to startup routine

Changes to Nginx Config (optional)

Troubleshooting

Finding default location of config/error files for PHP, MySQL & Nginx

Brew’ing PHP, MySQL & Nginx on Mac OS X

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

 

Run following command to improve security of your mysql setup. It will present you wizard to set mysql root password among other things.


			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;
		

 

Next you can create 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’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

Mac

PREVIOUS

Monitoring

NEXT


Comments

  1. victor.sabo.7 Avatar

    victor.sabo.7

    July 24, 2013

    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. External link to www.valentina-db.comhttp://www.valentina-db.com/en/valentina-studio-overview
    You can install Valentina Studio (FREE) directly from Mac App Store: External link to itunes.apple.comhttps://itunes.apple.com/us/app/valentina-studio/id604825918?ls=1&mt=12

    1. Rahul Bansal Avatar

      Rahul Bansal

      July 25, 2013

      Thanks for sharing. I will have a look at it.

      Have you tried mysql-workbench? External link to www.mysql.comhttp://www.mysql.com/products/workbench/

      1. victor.sabo.7 Avatar

        victor.sabo.7

        July 25, 2013

        Yes of course. But I agree to some people from this discussion External link to www.reddit.comhttp://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 External link to www.youtube.comhttp://www.youtube.com/watch?v=1wAd1IrwKAs

        1. Andreas Avatar

          Andreas

          January 8, 2014

          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: External link to www.sequelpro.comhttp://www.sequelpro.com/

  2. mr.von.chn Avatar

    mr.von.chn

    September 25, 2013

    curl: (56) Recv failure: Connection reset by peer
    Error: Download failed: External link to downloads.sf.nethttp://downloads.sf.net/project/libpng/libpng15/older-releases/1.5.14/libpng-1.5.14.tar.gz

    —-from china

    1. Rahul Bansal Avatar

      Rahul Bansal

      September 25, 2013

      Looks like sourceforge mirror from which download in progress timed out. You can try again whole commands.

      Such errors should be temporary!

  3. AR Avatar

    AR

    October 23, 2013

    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: External link to github.comhttps://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

    1. Rahul Bansal Avatar

      Rahul Bansal

      October 23, 2013

      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?

  4. Jenish Avatar

    Jenish

    November 12, 2013

    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?

    1. Rahul Bansal Avatar

      Rahul Bansal

      November 12, 2013

      Fixed. There homepage is changed to External link to brew.shhttp://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.

  5. heon Avatar

    heon

    January 24, 2014

    Thank you for good tutorial 🙂

Features

Useful Links

Product

Other Products

Subscribe for curated product updates, tips, and announcements.

"*" indicates required fields

Company

This field is for validation purposes and should be left unchanged.

Email*

SIGN ME UP

Δ


© rtCamp, since 2009. All rights reserved.

Powered by