PHP CGI 有3種形式:
最強悍的FPM, 功能最強大, 只要配置php-fpm.conf即可;
fpm首頁: http://php-fpm.org/ 使用 spawn-fcgi, 啟動命令: env ? PHP_FCGI_CHILDREN=3 PHP_FCGI_MAX_REQUESTS=1000 spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f php-cgi -P /var/run/spawn-fcgi.pid
使用時, 把www-data替換成自己的使用者名稱和群組名;
參數含義如下:
-f 指定調用FastCGI的進程的執行程式位置,根據系統上所裝的PHP的情況具體設定
-a 綁定到地址addr
-p 綁定到連接埠port
-s 綁定到unix socket的路徑path
-C 指定產生的FastCGI的進程數,預設為5(僅用於PHP)
-P 指定產生的進程的PID檔案路徑
-u和-g FastCGI使用什麼身份(-u 使用者 -g 使用者組)運行,Ubuntu下可以使用www-data,其他的根據情況配置,如nobody、apache等
然後我們可以將這行代碼加入到/etc/rc.local檔案底部,這樣系統啟動的時候也可以同時啟動PHP的FastCGI進程。
直接啟動php-cgi, 使用命令: php-cgi -b 127.0.0.1:9000
不過這時php-cgi是使用目前使用者身份, 執行session等相關操作會出錯, 如果web使用者(如ubuntu下的www-data)是可以登入的, 則使用命令: su www-data -l -c “php-cgi -b 127.0.0.1:9000″
如果www-data不能登入(bash位/bin/false), 那麼直接修改使用者權限,
sudo chown www-data:www-data which php-cgi
sudo chmod u+s which php-cgi
BTW: 近段時間看ZF手冊,開頭有這麼一句: 對於只包含有 PHP 代碼的檔案,結束標誌(”?>”)是不允許存在的,PHP自身不需要(”?>”), 這樣做, 可以防止它的末尾的被意外地注入相應。 暈倒~~ 我這會兒才知道有這茬
http://mifunny.info/run-php-as-cgi-339.html