FeaturesWP CloudPricingEE CLIContactMy Account
Features
Team Access & User Permissions
Install
Resources
Community
CLEAR
Tutorials
Mac
Brew’ing PHP, MySQL & Nginx on Mac OS X
Topics
On this page
-
- Getting Started
- Git and File-System Layout (non-default setup)
- Version Constraints
- Managing Themes and Plugins (for entire WordPress site)
- Updating Themes and Plugins (for entire WordPress site)
- Adding Composer Support to Your Own Themes and Plugins (for developers)
- Using Composer to Manage Own Theme/Plugin Dependencies (for developers)
-
- Assigning Multiple IP Addresses to Single LAN Card
- Disable IPv6 on Ubuntu 12.04
- dsh – distributed shell
- fdupes – find & replace duplicate files with hardlinks
- GPG Keys Cheatsheet
- Increase "Open Files Limit"
- kill all php, nginx, mysql or any kind of processes
- Passwordless Authentication for SSH
- Screen
- search replace in multiple files useing grep xargs sed
- Setup sftp
- sysctl.conf
- Timezone Sync
- Using Google Public DNS on Ubuntu Server
- Using openssl to match private key, cerificate and CSR
- Configure Postfix to Use Gmail SMTP on Ubuntu
- Logrotate Example for Custom Logs
- PHP 5.5, MySQL, Postfix, Nginx and WordPress on Ubuntu
- Serverdensity
- Upgrade Ubuntu 10.04 to 12.04
- Using find and sed to replace strings in multiple files
- Webmin
-
- .my.cnf – mysql user & password
- Analyse slow-query-log using Anemometer
- Improving MySQL Query Cache
- MySQL Query Profiling
- Reset MySQL root password
- tuning-primer.sh – an alternative for mysqltuner
- Using MariaDB 10
- Install/Upgrade to MySQL 5.6 on Ubuntu 12.04 LTS
- Change WordPress Domain Name
- Character Sets and Collations
- Enable innodb_file_per_table
- Enable Remote Access (Grant)
- Installing Percona Toolkit
- Using tmpfs for temporary folder creation
- YARPP and InnoDB
- Convert MyISAM to InnoDB
- Using tmpfs for mysqldump & mysqlimport
- Convert from INNODB to MYISAM
- Analyse slow-query-log using mysqldumpslow & pt-query-digest
- mysqlcheck with cron to optimize automatically
- Using MySQLTuner to Optimize MySQL configuration
-
-
- Directly connect to PHP-FPM
- Generating core-dump for php5-fpm
- GeoIP
- Having php5 and php7 on same system.
- Install Xdebug and configure it with webgrind
- Installation of PHP Code Review Tools
- memcache
- PHP's Zend Opcache Config & Web Viewer
- Setting Sqlite support with PHP
- Using HHVM with PHP-FPM Fallback
- Using Redis for PHP Sessions on Ubuntu Server
- Installing PhpMyAdmin Quickly
- Moving PHP's session storage to tmpfs
- Install Xdebug and configure it with Netbeans
- Nginx – Enable PHP-FPM Status Page
- PHP-FPM: Socket vs TCP/IP and sysctl tweaking
- APC Cache Optimization & Monitoring Using Web Interface
- Checking if PHP/WordPress can send mails
- Debugging PHP Scripts Using slow_log and more
- Increase file upload size limit in PHP-Nginx
- Increase PHP script execution time with Nginx
-
- Performance Optimization
- Remove Query string of css/js files
- Setup ElasticSearch with ElasticPress
- Using Redis for WordPress Object-Cache
- WooCommerce Window Shopping Caching Technique
- Moving WordPress To New Server (Faster)
- Better wp-cron using linux's crontab
- 404 error- Page not Found!!!
- Debugging WordPress with Nginx
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 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
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. 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-
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/
-
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
-
Andreas
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/
-
-
-
-
mr.von.chn
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
-
Looks like sourceforge mirror from which download in progress timed out. You can try again whole commands.
Such errors should be temporary!
-
-
AR
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 1READ 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-
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?
-
-
Jenish
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 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.
-
-
heon
Thank you for good tutorial 🙂
Features
- Server Setup & Management
- Site Creation & Management
- Create WP Cloud Sites
- Speed & Caching
- Firewall Protection
- Backups & Recovery
- Logs & Monitoring
- Deployments & Developer Tools
- Team Access & User Permissions
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.