英文原文:http://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/php
參照博文做者: http://blog.liuweifeng.net/author/liuweifeng/node
首先,爲了避免出現各類神奇的錯誤,請安裝 XCode。Yosemite 發佈後,XCode 的最新版本是 6.1.0(6A1052d)。而後,不可忽略的一步,請在終端裏執行mysql
xcode-select --install
來安裝最新的 XCode 命令行工具(Xcode Command Line Tools)。nginx
若是沒有安裝,請移步官網 →_→ Homebrew 官方網站git
若是你已經安裝了 Homebrew,請在終端執行brew doctor檢查各類可能的衝突和問題。而後執行 brew update && brew upgrade
升級 Homebrew 自身和自帶的 formulasgithub
添加brew的php擴展庫:redis
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
安裝開發包:sql
brew install wget watch tmux cmake openssl imagemagick graphicsmagick gearman geoip readline autoconf multitail source-highlight autojump zsh-completions sshfs
而後開始安裝:shell
brew search php //choose php version
安裝php一下擴展apache
brew install php71-apcu\ php71-gearman\ php71-geoip\ php71-gmagick\ php71-imagick\ php71-mcrypt\ php71-memcache\ php71-memcached\ php71-mongo\ php71-apache\ php71-pdo-pgsql\ php71-redis\ php71-sphinx\ php71-swoole\ php71-uuid\ php71-xdebug;
更改成新安裝的php,打開~/.bash_profile
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" //能夠採起下面的方式
由於咱們打算安裝 Nginx,Apache 就不須要了(貌似 OS X 自帶了 Apache?)。
若是你想在命令行裏使用 PHP 的話,你須要在你 shell 的 Profile 裏設置下 $PATH:
# If you use Bash echo 'export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH"' >> ~/.bash_profile && . ~/.bash_profile # If you use ZSH echo 'export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH"' >> ~/.zshrc && . ~/.zshrc
安裝composer
brew install composer
composer --version
設置開機啓動:
mkdir -p ~/Library/LaunchAgents cp /usr/local/Cellar/php71/7.1.5_17/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
啓動 PHP-FPM:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist
看下 PHP-FPM 是否是在監聽 9000 端口:
lsof -Pni4 | grep LISTEN | grep php
輸出應該是這個樣子的:
php-fpm 78168 liuweifeng 7u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 78170 liuweifeng 0u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 92277 liuweifeng 0u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 94154 liuweifeng 0u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN)
brew install mysql
設置開機啓動:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
mysql_secure_installation
能夠設置 root 的密碼、移除匿名用戶、禁止 root 遠程登陸,等等。
首先須要安裝 autoconf
brew install autoconf
設置 $PHP_AUTOCONF
:
# If you use Bash echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.bash_profile && . ~/.bash_profile # If you use ZSH echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.zshrc && . ~/.zshrc
開始安裝 phpMyAdmin :
brew install phpmyadmin
brew install nginx
因爲咱們須要啓動 80 端口,因此須要使用 sudo 來運行 nginx
sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/ sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
建立配置文件中須要用到的目錄
mkdir -p /usr/local/etc/nginx/logs mkdir -p /usr/local/etc/nginx/sites-available mkdir -p /usr/local/etc/nginx/sites-enabled mkdir -p /usr/local/etc/nginx/conf.d mkdir -p /usr/local/etc/nginx/ssl sudo mkdir -p /var/www sudo chown :staff /var/www sudo chmod 775 /var/www
移除默認的 nginx.conf
(其實在 /usr/local/etc/nginx/nginx.conf.default
還有個備份,你能夠看一眼,若是你想看的話。。。),而後使用 curl
從 Github 上下載個人自定義版本:
rm /usr/local/etc/nginx/nginx.conf curl -L https://gist.github.com/frdmn/7853158/raw/nginx.conf -o /usr/local/etc/nginx/nginx.conf
這是一個儘量簡單和輕量級的配置文件。
從 Github 下載個人自定義配置文件:
curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default -o /usr/local/etc/nginx/sites-available/default curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default-ssl -o /usr/local/etc/nginx/sites-available/default-ssl curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_phpmyadmin -o /usr/local/etc/nginx/sites-available/phpmyadmin
使用 Git
從 Github 上克隆個人實例虛擬主機配置(包括默認的 40四、403頁面,和一個 phpinfo()
rewrite)。
git clone http://git.frd.mn/frdmn/nginx-virtual-host.git /var/www rm -rf /var/www/.git
克隆完記得把 .git 目錄刪除掉,這樣就不會被 Git 記錄了。
譯者注:其實吧,我趕腳這個 404 和 403 挺醜的。。。
建立須要的目錄
mkdir -p /usr/local/etc/nginx/ssl
建立 4096bit RSA keys 和自簽名證書:
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /usr/local/etc/nginx/ssl/phpmyadmin.key -out /usr/local/etc/nginx/ssl/phpmyadmin.crt
建立軟連接:
ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl ln -sfv /usr/local/etc/nginx/sites-available/phpmyadmin /usr/local/etc/nginx/sites-enabled/phpmyadmin
再次啓動 Nginx:
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
基本上完事了,點擊下面的連接來感覺下吧:
之後你確定會關閉或者重啓上面設置的某個服務的,因此你可能須要設置一些別名。(須要修改bash_aliases中的php版本)
# If you use Bash curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.bash_aliases cat /tmp/.bash_aliases >> ~/.bash_aliases echo "source ~/.bash_aliases" >> ~/.bash_profile # If you use ZSH curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.zshrc cat /tmp/.bash_aliases >> ~/.zshrc echo "source ~/.bash_aliases" >> ~/.zshrc
再打開一個終端窗口,來使上面的別名生效:
source ~/.bash_profile # or source ~/.zshrc
如今你能夠使用別名而不是 launchctl
和那一長串參數了~
你能夠這樣來啓動、關閉、重啓 Nginx:
nginx.start nginx.stop nginx.restart
快速 tail 訪問日誌和錯誤日誌:
nginx.logs.access nginx.logs.default.access nginx.logs.phpmyadmin.access nginx.logs.default-ssl.access nginx.logs.error nginx.logs.phpmyadmin.error
檢查配置:
sudo nginx -t
啓動、關閉、重啓 PHP-FPM:
php-fpm.start php-fpm.stop php-fpm.restart
檢查配置:
php-fpm -t
啓動、關閉、重啓 MySQL:
mysql.start mysql.stop mysql.restart