The installation of homebrew is outlined in the "Mac OS X Mavericks 10.9 Installation and configuration homebrew". We can use it here. Mac defaults to Apache, PHP, but these versions are older. And if you want to use the Nginx, the new version of PHP and MySQL, using homebrew to install is a good choice. And these software versions in the constant update, so some configuration is also changing, but according to homebrew in the installation process prompts always smooth installation of this configuration.
Install Nginx
mac-mini:~ weiz$ Brew Install Nginx
...
Docroot is:/usr/local/var/www
The default port has been set in/usr/local/etc/nginx/nginx.conf to 8080
Nginx can run without sudo.
To have launchd start nginx at login:
Ln-sfv/usr/local/opt/nginx/*.plist ~/library/launchagents
Then to load Nginx now:
Launchctl Load ~/library/launchagents/homebrew.mxcl.nginx.plist
Or, if you don ' t want/need Launchctl, can just run:
Nginx
mac-mini:~ weiz$ ln-sfv/usr/local/opt/nginx/*.plist ~/library/launchagents
/users/weiz/library/launchagents/homebrew.mxcl.nginx.plist->/usr/local/opt/nginx/homebrew.mxcl.nginx.plist
mac-mini:~ weiz$ sudo chown root:wheel/usr/local/cellar/nginx/1.4.4/bin/nginx
Password:
mac-mini:~ weiz$ sudo chmod u+s/usr/local/cellar/nginx/1.4.4/bin/nginx
mac-mini:~ weiz$ vim/usr/local/etc/nginx/nginx.conf
mac-mini:~ weiz$ sudo nginx
installing MySQL
mac-mini:~ weiz$ Brew Info MySQL
Mysql:stable 5.6.14 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with:mariadb, Mysql-cluster, Percona-server
Not installed
From:https://github.com/mxcl/homebrew/commits/master/library/formula/mysql.rb
==> dependencies
Build:cmake✘
==> Options
--enable-debug
Build with Debug support
--enable-local-infile
Build and local infile loading support
--enable-memcached
Enable innodb-memcached Support
--universal
Build a Universal Binary
--with-archive-storage-engine
Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
Compile with the Blackhole storage engine enabled
--with-embedded
Build the embedded server
--with-tests
Build with Unit tests
==> Caveats
A "/etc/my.cnf" from another install could interfere with a homebrew-built
Server starting up correctly.
To connect:
Mysql-uroot
To have launchd start MySQL at login:
Ln-sfv/usr/local/opt/mysql/*.plist ~/library/launchagents
Then to load MySQL now:
Launchctl Load ~/library/launchagents/homebrew.mxcl.mysql.plist
Or, if you don ' t want/need Launchctl, can just run:
Mysql.server start
mac-mini:~ weiz$ Brew Install MySQL
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mysql-5.6.1
...
==> Pouring mysql-5.6.14.mavericks.bottle.tar.gz
==>/usr/local/cellar/mysql/5.6.14/bin/mysql_install_db--verbose--user=weiz
==> Caveats
A "/etc/my.cnf" from another install could interfere with a homebrew-built
Server starting up correctly.
To connect:
Mysql-uroot
To have launchd start MySQL at login:
Ln-sfv/usr/local/opt/mysql/*.plist ~/library/launchagents
Then to load MySQL now:
Launchctl Load ~/library/launchagents/homebrew.mxcl.mysql.plist
Or, if you don ' t want/need Launchctl, can just run:
Mysql.server start
Configure MySQL random start service:
mac-mini:~ weiz$ ln-sfv/usr/local/opt/mysql/*.plist ~/library/launchagents
/users/weiz/library/launchagents/homebrew.mxcl.mysql.plist->/usr/local/opt/mysql/homebrew.mxcl.mysql.plist
Start MySQL:
mac-mini:~ weiz$ mysql.server Start
Starting MySQL
. success!
Installing PHP
mac-mini:~ weiz$ Brew tap homebrew/dupes &&brew tap homebrew/php
mac-mini:~ weiz$ Brew Install php55--with-debug--with-fpm--with-gmp--with-homebrew-openssl--with-imap--with-intl-- With-libmysql--without-bz2--without-mysql--without-pcntl--without-pear
...
==> Installing PHP55
...
==> Caveats
The php.ini file can is found in:
/usr/local/etc/php/5.5/php.ini
✩✩✩✩extensions (Note: Configure PHP According to the following prompts) ✩✩✩✩
If you are have issues with custom extension compiling, ensure that
You are are using the brew version, by Placing/usr/local/bin Before/usr/sbin in your PATH:
Path= "/usr/local/bin: $PATH"
PHP55 Extensions'll always be compiled against this PHP. Please install them
Using--without-homebrew-php to enable compiling against system PHP.
✩✩✩✩php Cli✩✩✩✩
If you are wish to swap the PHP with the command line, you should add the following to ~/.BASHRC,
~/.ZSHRC, ~/.profile or your shell ' s equivalent configuration file:
Export Path= "$ (Brew--prefix josegonzalez/php/php55)/bin: $PATH"
✩✩✩✩fpm✩✩✩✩
To launch PHP-FPM (Configure the PHP-FPM random boot service According to the following prompts) on startup:
* If is your-a-install:
Mkdir-p ~/library/launchagents
Cp/usr/local/cellar/php55/5.5.6/homebrew-php.josegonzalez.php55.plist ~/library/launchagents/
Launchctl load-w ~/library/launchagents/homebrew-php.josegonzalez.php55.plist
* If This is a upgrade and you already have the Homebrew-php.josegonzalez.php55.plist loaded:
Launchctl unload-w ~/library/launchagents/homebrew-php.josegonzalez.php55.plist
Cp/usr/local/cellar/php55/5.5.6/homebrew-php.josegonzalez.php55.plist ~/library/launchagents/
Launchctl load-w ~/library/launchagents/homebrew-php.josegonzalez.php55.plist
The control script is located at/usr/local/cellar/php55/5.5.6/sbin/php55-fpm
Mountain Lion comes with php-fpm pre-installed, to ensure your are using the brew version you need to make sure/usr/local/ Sbin is before/usr/sbin in your PATH:
Path= "/usr/local/sbin: $PATH"
You may also need to edit the plist to use the correct "UserName".
Please note that the plist is called ' org.php-fpm.plist ' in old versions
of this formula.
Add PHP to the random start service:
To have launchd start php55 at login:
Ln-sfv/usr/local/opt/php55/*.plist ~/library/launchagents
Then to load Php55 now:
Launchctl Load ~/library/launchagents/homebrew.mxcl.php55.plist
==> Summary
/usr/local/cellar/php55/5.5.6:306 files, 39M, built in 4.6 minutes
Configure the PHP environment based on installation information
mac-mini:~ weiz$ Vim ~/.profile
Export Path= "$ (Brew--prefix josegonzalez/php/php55)/bin: $PATH"
mac-mini:~ weiz$ Source ~/.profile
mac-mini:~ weiz$ Vim ~/.BASHRC
Export Path= "$ (Brew--prefix josegonzalez/php/php55)/bin: $PATH"
mac-mini:~ weiz$ Source ~/.BASHRC
mac-mini:~ weiz$ mkdir-p ~/library/launchagents
mac-mini:~ weiz$ cp/usr/local/cellar/php55/5.5.6/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/
mac-mini:~ weiz$ launchctl load-w ~/library/launchagents/homebrew-php.josegonzalez.php55.plist
mac-mini:~ weiz$ ln-sfv/usr/local/opt/php55/*.plist ~/library/launchagents
/users/weiz/library/launchagents/homebrew-php.josegonzalez.php55.plist->/usr/local/opt/php55/ Homebrew-php.josegonzalez.php55.plist
Configure Nginx
mac-mini:~ weiz$ vim/usr/local/etc/nginx/nginx.conf
#user nobody;
Worker_processes 1;
#error_log Logs/error.log;
#error_log Logs/error.log Notice;
#error_log Logs/error.log Info;
#pid Logs/nginx.pid;
Events {
Worker_connections 1024;
}
HTTP {
Include Mime.types;
Default_type Application/octet-stream;
Client_max_body_size 20m; # #可以根据自己的实际需要去定义上传附件的大小
#log_format Main ' $remote _addr-$remote _user [$time _local] "$request"
# ' $status $body _bytes_sent ' $http _referer '
# ' $http _user_agent ', ' $http _x_forwarded_for ';
#access_log Logs/access.log Main;
Sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
Keepalive_timeout 65;
#gzip on;
server {
Listen 80;
server_name localhost;
#charset Koi8-r;
#access_log Logs/host.access.log Main;
Location/{
root HTML;
Index index.php index.html index.htm;
}
#error_page 404/404.html;
# REDIRECT Server error pages to the static page/50x.html
#
Error_page 502 503 504/50x.html;
Location =/50x.html {
root HTML;
}
# Proxy The PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# Proxy_pass http://127.0.0.1;
#}
# Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
Location ~ \.php$ {
root HTML;
Fastcgi_pass 127.0.0.1:9000;
Fastcgi_index index.php;
Fastcgi_param Script_filename/usr/local/var/www$fastcgi_script_name;
Include/usr/local/etc/nginx/fastcgi_params;
}
# Deny access to. htaccess files, if Apache ' s document Root
# concurs with Nginx ' s one
#
#location ~/\.ht {
# Deny All;
#}
}
# Another virtual host using mix of ip-, name-, and port-based configuration
#
#server {
# Listen 8000;
# Listen somename:8080;
# server_name somename alias Another.alias;
# location/{
# root HTML;
# index index.html index.htm;
# }
#}
# HTTPS Server
#
#server {
# Listen 443;
# server_name localhost;
# SSL on;
# ssl_certificate Cert.pem;
# Ssl_certificate_key Cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers high:!anull:! MD5;
# ssl_prefer_server_ciphers on;
# location/{
# root HTML;
# index index.html index.htm;
# }
#}
}
mac-mini:~ weiz$ nginx-s Reload #重启nginx
Here, the installation is basically finished, if you need to manage some of the client tools to manage MySQL, open source free Sequelpro is a very good choice.