今天趕上了123System OPenVZ VPS全場半價的機會,購入了一台512MB記憶體、雙核3.49Ghz Xeon E3-1270 V3 CPU的套餐,這是第一次使用123system的產品,整體印象非常不錯,就目前而言速度也是杠杠噠,便手動設定起了最新版的Tengine和PHP 5.6.8。在編譯完成之後我決定以PHP -FPM的方式來運行PHP,下面是從各處收集到並且重新整理的一些關於FPM使用的技巧,記錄一下方便自己與一些平時接觸到這方面工作的朋友吧!
1、安裝完之後,對php-conf的修改:
修改使用者組:
user = www-data
group = www-data
如果www-data使用者不存在,那麼執行linux命令先添加www-data使用者
groupadd www-data
useradd -g www-data www-data
部分參數解析:
pid = run/php-fpm.pid
#pid設定,預設在安裝目錄中的var/run/php-fpm.pid,建議開啟
error_log = log/php-fpm.log
#錯誤記錄檔,預設在安裝目錄中的var/log/php-fpm.log
log_level = notice
#錯誤層級. 可用層級為: alert(必須立即處理), error(錯誤情況), warning(警告情況), notice(一般重要訊息), debug(調試資訊). 預設: notice.
emergency_restart_threshold = 60
emergency_restart_interval = 60s
#表示在emergency_restart_interval所設值內出現SIGSEGV或者SIGBUS錯誤的php-cgi進程數如果超過 emergency_restart_threshold個,php-fpm就會優雅重啟。這兩個選項一般保持預設值。
process_control_timeout = 0
#設定子進程接受主進程複用訊號的逾時時間. 可用單位: s(秒), m(分), h(小時), 或者 d(天) 預設單位: s(秒). 預設值: 0.
daemonize = yes
#後台執行fpm,預設值為yes,如果為了調試可以改為no。在FPM中,可以使用不同的設定來運行多個進程池。 這些設定可以針對每個進程池單獨設定。
listen = 127.0.0.1:9000
#fpm監聽連接埠,即nginx中php處理的地址,一般預設值即可。可用格式為: 'ip:port', 'port', '/path/to/unix/socket'. 每個進程池都需要設定.
listen.backlog = -1
#backlog數,-1表示無限制,由作業系統決定,此行注釋掉就行。backlog含義參考:http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#允許訪問FastCGI進程的IP,設定any為不限制IP,如果要設定其他主機的nginx也能訪問這台FPM進程,listen處要設定成本地可被訪問的IP。預設值是any。每個地址是用逗號分隔. 如果沒有設定或者為空白,則允許任何伺服器請求串連
2、對Nginx.conf的fastcgi部分修改:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3、PHP-FPM啟動相關參數
#測試php-fpm配置
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t
#啟動php-fpm
/usr/local/php/sbin/php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
#關閉php-fpm
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
#重啟php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
4、Nginx的開啟與關閉
結束進程:fuser -k 80/tcp
啟動Nginx:sudo /usr/local/nginx/nginx