今天趕上了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
新聞熱點
疑難解答