直接運行,有報錯找不到設定檔。
$ 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 failization failization failization failation
可以在/private/etc/ 目錄下產生設定文件,需要root權限(sudo)
或在普通使用者有權限的目錄裡放置設定文件,透過--fpm-config參數指定設定檔的位置,如下:
# 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
錯誤訊息顯示「檔案無法正確開啟錯誤的訊息」 ,原因是預設在/usr/var目錄下工作,可以修改設定檔指定正確的日誌檔案路徑
$ vim /usr/local/etc/php-fpm.conf
修改php-fpm.conf檔案中的error_log項,預設前綴是/usr/var ,但沒有這個路徑
error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm .pid
或不修改設定檔中配置項目的路徑,在php-fpm的運行參數中(-p)指定放置運行時檔案的相對路徑前綴
$ php-fpm --fpm-config /usr/ local/etc/php-fpm.conf --prefix /usr/local/var
到此,php-fpm守護程式已經基本上可以正確的啟動了。
下面我們看下php.ini設定檔及擴充的安裝。
首先看下編譯參數,有些值是編譯進執行程式的,無法更改。
$ php -i|grep config
找到設定檔(php.ini)、目錄的位置,以下兩項的值指定
'--with-config-file-path=/etc'
'- -with-config-file-scan-dir=/Library/Server/Web/Config/php'
所以我們需要在/etc目錄下創建php.ini,Mac在/private/etc,/etc下均提供了範例檔php.ini.default,透過查驗,兩個檔案完全相同,所以複製哪一個都無所謂,Mac有提供md5而不是Linux下的md5sum:
$ md5 /private/etc/php.ini.default /etc/php.ini.default
MD5 (/private/etc/php.ini.default) = 1c47241665ea5efdc55fd5809f675449
MD5 (/etc/php809f675449
MD5 (/etc/php.eadefaultd.
/etc目錄權限root:wheel,需要root權限或使用sudo,關於如何設定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,生產環境最好不要改
# chown /etc/php.ini
# chmod u+w /etc/php.ini
安裝PHP擴充
/Library/Server/Web/Config/php 這個目錄並不存在,或Mac OS X Server版本有吧,不知道,手動創建他,以root權限
# mkdir -p /Library/Server/Web/Config/php
編譯擴展,brewhome是另起爐灶,brew方式安裝擴展需要依賴php ,如php54-redis會依賴php54,至於編譯出來的擴充是否可以配置到自帶的,沒有實驗過。以下以php_discuz擴充(https://github.com/potterhe/php_discuz下載)為例。
假如擴充原始碼在/Users/apple/php_discuz目錄
$ ./configure
$ make
擴充編譯後,預設會儲存在/Users/apple/php_discuz/modululcuz/modululcuz在設定檔中開啟
$ echo "extension=/Users/apple/php_discuz/modules/discuz.so" > /Library/Server/Web/Config/php/discuz.ini
測試驗證
$ php -i| grep discuz
discuz support => enabled
運行案例測試
$ php -f /Users/apple/php_discuz/discuz.php