基礎環(huán)境
centos 6.x
安裝&啟動
目前php5.4 以上需編譯安裝(或remi源安裝)凿渊,本文檔只針對php5.3版本,yum安裝需配置epel的源梯皿,yum源配置詳見[LNMP]Linux的Web服務基礎配置
<pre>
yum install -y phpphp-fpm php-cli php-common php-pdo php-mysql php-mbstring php-mcrypt php-gdphp-xml php-pear php-pecl-apc php-pecl-memcache
chkconfig php-fpm on
service php-fpm start
</pre>
配置
php配置
由于php 配置較多突那,以下只列出生產環(huán)境需要配置的部分(檢查以下配置),文件路徑:/etc/php.ini
<pre>
;debug署穗、error、版本顯示相關配置
error_reporting =E_ALL & ~E_DEPRECATED
display_errors =Off
display_startup_errors= Off
log_errors = On
track_errors = Off
html_errors = Off
mysqlnd.collect_memory_statistics= Off
session.bug_compat_42= Off
session.bug_compat_warn= Off
;安全相關配置
short_open_tag =Off
expose_php = Off
enable_dl = Off
disable_functions= eval,passthru,exec,system,chroot,scandir,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,ini_set,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru
;時區(qū)配置
date.timezone =Asia/Shanghai
;上傳文件大小限制
post_max_size =16M
upload_max_filesize= 16M
;腳本執(zhí)行時間限制
max_execution_time= 60
max_input_time =60
;腳本內存限制嵌洼,一般設為128M案疲,如非必要(無可避免的上傳大文件/處理大數(shù)組)不增加
memory_limit =128M
</pre>
php-fpm配置
公共配置:/etc/php-fpm.conf,需要修改的參數(shù)如下麻养,其余參數(shù)使用默認值
<pre>
;設置pid
pid =/var/run/php-fpm/php-fpm.pid
;錯誤日志處理
error_log =/var/log/php-fpm/error.log
log_level = notice
;異常自啟(表示60s內出現(xiàn) 60次 SIGSEGV orSIGBUS 異常時候褐啡,自動重啟)
emergency_restart_threshold= 60
emergency_restart_interval= 60s
;設置子進程接受主進程復用信號的超時時間
process_control_timeout= 0
;后臺執(zhí)行php-fpm
daemonize = yes
</pre>
資源池配置
在/etc/php-fpm.d/*.conf(每個文件代表一個資源池,機器性能足夠時候鳖昌,可以區(qū)分多個資源池备畦,隔絕不同的php應用),默認是 /etc/php-fpm.d/www.conf许昨,需要修改的參數(shù)如下懂盐,其余參數(shù)使用默認值
<pre>
[www]
;監(jiān)聽方式,用tcp方式較穩(wěn)定
listen = 127.0.0.1:9000
;backlog车要,排隊長度設置
listen.backlog = 4096
;php-fpm進程的用戶&用戶組(即程序讀寫文件/目錄所使用的用戶&用戶組)
user = nobody
group = nobody
;設置php-fpm進程允粤,一般大于8G內存建議用 static 模式,max_children的計算方式翼岁,每個php-fpm進程約占 20~30M 的內存,根據(jù)預計給php-fpm的內存計算出合理值司光,例如預計給php-fpm 預留6G使用內存琅坡,那max_children 應設置為 200~300 之間
pm = static
pm.max_children = 300
;子進程接收n個請求后,自動重啟
pm.max_requests = 600
;慢處理日志残家,表示超過45秒則記錄為慢處理
request_slowlog_timeout = 45s
slowlog = /var/log/php-fpm/www-slow.log
</pre>