Mac OS X 10.9已經(jīng)自帶有php-fpm,對于有干凈系統(tǒng)強(qiáng)迫癥的人,或者原裝控來說,用brewhome重裝一遍總感覺心里會有小兔子,下面把原裝的php-fpm配置起來。
直接運(yùn)行,有報錯找不到配置文件。
$ php-fpm
[11-Jan-2014 16:03:03] ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
[11-Jan-2014 16:03:03] ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
[11-Jan-2014 16:03:03] ERROR: FPM initialization failed
可以在/private/etc/ 目錄下生成配置文件,需要root權(quán)限(sudo)
或者在普通用戶有權(quán)限的目錄里放置配置文件,通過--fpm-config參數(shù)指定配置文件的位置,如下:
# cp /private/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
$ php-fpm --fpm-config /usr/local/etc/php-fpm.conf
[11-Jan-2014 16:10:49] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[11-Jan-2014 16:10:49] ERROR: failed to post process the configuration
[11-Jan-2014 16:10:49] ERROR: FPM initialization failed
錯誤信息顯示:不能正確的打開”日志“文件,原因是默認(rèn)在/usr/var目錄下工作,可以修改配置文件指定正確的日志文件路徑
$ vim /usr/local/etc/php-fpm.conf
修改php-fpm.conf文件中的error_log
項(xiàng),默認(rèn)前綴是/usr/var ,但并沒有這個路徑
error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm.pid
或者不修改配置文件中配置項(xiàng)的路徑,在php-fpm的運(yùn)行參數(shù)中(-p)指定放置運(yùn)行時文件的相對路徑前綴
$ php-fpm --fpm-config /usr/local/etc/php-fpm.conf --prefix /usr/local/var
到此,php-fpm守護(hù)進(jìn)程已經(jīng)基本可以正確的啟動了。
下面我們看下php.ini配置文件及擴(kuò)展的安裝。
首先看下編譯參數(shù),有些值是編譯進(jìn)執(zhí)行程序的,無法更改。
$ php -i|grep config
找到配置文件(php.ini)、目錄的位置,下面兩項(xiàng)的值指定
'--with-config-file-path=/etc'
'--with-config-file-scan-dir=/Library/Server/Web/Config/php'
所以我們需要在/etc目錄下創(chuàng)建php.ini,Mac在/private/etc,/etc下均提供了樣例文件php.ini.default,通過查驗(yàn),兩個文件完全相同,所以復(fù)制哪一個都無所謂,Mac有提供md5而不是Linux下的md5sum:
$ md5 /private/etc/php.ini.default /etc/php.ini.default
MD5 (/private/etc/php.ini.default) = 1c47241665ea5efdc55fd5809f675449
MD5 (/etc/php.ini.default) = 1c47241665ea5efdc55fd5809f675449
/etc目錄權(quán)限r(nóng)oot:wheel,需要root權(quán)限或使用sudo,關(guān)于如何設(shè)置Mac的sudo命令需要的密碼,請查看
http://support.apple.com/kb/HT4103?viewlocale=zh_CN&locale=zh_CN
http://support.apple.com/kb/PH6515?viewlocale=zh_CN
# cp /etc/php.ini.default /etc/php.ini
變更own,以后修改不用老是切換root,生產(chǎn)環(huán)境最好不要改
# chown <你的用戶名> /etc/php.ini
# chmod u+w /etc/php.ini
安裝PHP擴(kuò)展
/Library/Server/Web/Config/php 這個目錄并不存在,或者M(jìn)ac OS X Server版本有吧,不知道,手動創(chuàng)建他,以root權(quán)限
# mkdir -p /Library/Server/Web/Config/php
編譯擴(kuò)展,brewhome是另起爐灶,brew方式安裝擴(kuò)展需要依賴php,如php54-redis會依賴php54,至于編譯出來的擴(kuò)展是否可以配置到自帶的,沒有實(shí)驗(yàn)過。下面以php_discuz擴(kuò)展(https://github.com/potterhe/php_discuz下載)為例。
假如擴(kuò)展源碼在/Users/apple/php_discuz目錄
$ ./configure
$ make
擴(kuò)展編譯后,默認(rèn)會存儲在 /Users/apple/php_discuz/modules/discuz.so
將擴(kuò)展在配置文件中打開
$ echo "extension=/Users/apple/php_discuz/modules/discuz.so" > /Library/Server/Web/Config/php/discuz.ini
測試驗(yàn)證
$ php -i|grep discuz
discuz support => enabled
運(yùn)行用例測試
$ php -f /Users/apple/php_discuz/discuz.php
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 -D
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -D
kill -INT `cat /usr/local/var/run/php-fpm.pid`
kill -USR2 `cat /usr/local/var/run/php-fpm.pid`
brew services restart php55
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
啟動php-fpm之后,確保它正常運(yùn)行監(jiān)聽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開機(jī)啟動:
ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
安裝php composer
brew install composer
#檢查一下情況
composer
Composer version 1.0.0-alpha8 2014-01-06 18:39:59
redis memcached這些軟件brew 已經(jīng)自動依賴安裝上,如果想開機(jī)自動啟動,或者查看使用說明 brew info redis
即可。另外,composer的中文文檔:猛戳這里
安裝Nginx
brew install nginx
Nginx啟動關(guān)閉命令:
nginx -t
sudo nginx
nginx -s reload|reopen|stop|quit
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
Nginx開機(jī)啟動
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
Nginx監(jiān)聽80端口需要root權(quán)限執(zhí)行,因此:
sudo chown root:wheel /usr/local/Cellar/nginx/1.6.0_1/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.6.0_1/bin/nginx
posted on 2016-07-15 00:03
聶文龍 閱讀(841)
評論(0) 編輯 收藏 引用