## 安裝PHP
添加brew的PHP擴展庫:
```
brew update
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
```
可以使用brew options php55命令來查看安裝php5.5的選項,這里我用下面的選項安裝:
```
brew install php55 --with-fpm --with-gmp --with-imap --with-tidy --with-debug --with-mysql --with-libmysql
```
>PHP編譯過程中如果遇到configure: error: Cannot find OpenSSL's <evp.h>錯誤,執行xcode-select --install 重新安裝一下Xcode Command Line Tools 在GitHub HomeBrew上有關于這個討論:
For future reference of anybody looking for Command Line Tools with Xcode 5, open up a Terminal window and type xcode-select --install. A window will appear informing you command line tools are required. Click Install and you should be good to go
等待PHP編譯完成,開始安裝PHP常用擴展,擴展安裝過程中brew會自動安裝依賴包,例如php55-pdo-pgsql會自動裝上postgresql,這里我安裝以下PHP擴展:
```
brew install php55-apcu\
php55-gearman\
php55-geoip\
php55-gmagick\
php55-imagick\
php55-intl\
php55-mcrypt\
php55-memcache\
php55-memcached\
php55-mongo\
php55-opcache\
php55-pdo-pgsql\
php55-phalcon\
php55-redis\
php55-sphinx\
php55-swoole\
php55-uuid\
php55-xdebug;
```
>擴展里面提一下php55-phalcon 和 php55-swoole. 一個是C語言寫的PHP框架,安裝來個人摸索熟悉一下,還沒有真正的使用過,大致看了一下文檔,感覺非常吊炸天。目前公司的項目是基于Yii2的,也看看這個框架。 另外一個swoole是國產的PHP高性能網絡通信框架,貌似不錯,可能在項目中會考慮用到它。
由于Mac自帶了php和php-fpm,因此需要添加系統環境變量PATH來替代自帶PHP版本。
```
echo 'export PATH="$(brew --prefix php55)/bin:$PATH"' >> ~/.bash_profile #for php
echo 'export PATH="$(brew --prefix php55)/sbin:$PATH"' >> ~/.bash_profile #for php-fpm
echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' >> ~/.bash_profile #for other brew install soft
source ~/.bash_profile
```
測試一下效果:
```
#brew安裝的php 他在/usr/local/opt/php55/bin/php
php -v
PHP 5.5.14 (cli) (built: Jul 16 2014 15:43:06) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
#Mac自帶的PHP
/usr/bin/php -v
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
#brew安裝的php-fpm 他在/usr/local/opt/php55/sbin/php-fpm
php-fpm -v
PHP 5.5.14 (fpm-fcgi) (built: Jul 16 2014 15:43:12) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
#Mac自帶的php-fpm
/usr/sbin/php-fpm -v
PHP 5.4.24 (fpm-fcgi) (built: Jan 19 2014 21:32:57)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
```
修改php-fpm配置文件,vim /usr/local/etc/php/5.5/php-fpm.conf,找到pid相關大概在25行,去掉注釋 pid = run/php-fpm.pid, 那么php-fpm的pid文件就會自動產生在/usr/local/var/run/php-fpm.pid,下面要安裝的Nginx pid文件也放在這里。
```
#測試php-fpm配置
php-fpm -t
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -t
#啟動php-fpm
php-fpm -D
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -D
#關閉php-fpm
kill -INT `cat /usr/local/var/run/php-fpm.pid`
#重啟php-fpm
kill -USR2 `cat /usr/local/var/run/php-fpm.pid`
#也可以用上文提到的brew命令來重啟php-fpm,不過他官方不推薦用這個命令了
brew services restart php55
#還可以用這個命令來啟動php-fpm
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
```
啟動php-fpm之后,確保它正常運行監聽9000端口:
```
lsof -Pni4 | grep LISTEN | grep php
php-fpm 30907 calvin 9u IPv4 0xf11f9e8e8033a2a7 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 30917 calvin 0u IPv4 0xf11f9e8e8033a2a7 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 30918 calvin 0u IPv4 0xf11f9e8e8033a2a7 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 30919 calvin 0u IPv4 0xf11f9e8e8033a2a7 0t0 TCP 127.0.0.1:9000 (LISTEN)
#正常情況,會看到上面這些進程
```
PHP-FPM開機啟動:
```
ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
```
安裝php composer
```
brew install composer
#檢查一下情況
composer --version
Composer version 1.0.0-alpha8 2014-01-06 18:39:59
```
>redis memcached這些軟件brew 已經自動依賴安裝上,如果想開機自動啟動,或者查看使用說明 brew info redis即可。另外,composer的中文文檔:猛戳這里