最近在當(dāng)?shù)卮罱ǖ?a href="http://m.qzkangyuan.com/html/help/server/2016/0912/3898.html">LNMP的開拓情況。為了開拓的時(shí)候不影響前端的正常開拓就屏蔽的PHP內(nèi)里php.ini中的一些錯(cuò)誤提示。可是這樣一來,就影響到了后端開拓的一些問題好比不能實(shí)時(shí)調(diào)試開拓中的一些問題。
nginx與apache紛歧樣,在apache中可以直接指定php的錯(cuò)誤日志,那樣在php執(zhí)行中的錯(cuò)誤信息就直接輸入到php的錯(cuò)誤日志中,可以利便查詢。
在nginx中工作就釀成了這樣:nginx只對(duì)頁(yè)面的會(huì)見做access記錄日志。不會(huì)有php的error log 信息。nginx把對(duì)php的請(qǐng)求發(fā)給php-fpm fastcgi歷程來處理懲罰,默認(rèn)的php-fpm只會(huì)輸出php-fpm的錯(cuò)誤信息,在php-fpm的errors log里也看不到php的errorlog。
原因是php-fpm的設(shè)置文件php-fpm.conf中默認(rèn)是封鎖worker歷程的錯(cuò)誤輸出,直接把他們重定向到/dev/null,所以我們?cè)趎ginx的error log 和php-fpm的errorlog都看不到php的錯(cuò)誤日志。
所以我們要舉辦如下的配置就能查察到nginx下php-fpm不記錄php錯(cuò)誤日志的要領(lǐng):
1,修改php-fpm.conf中的設(shè)置,假如沒有請(qǐng)?jiān)黾?
[global]
; Note: the default prefix is /usr/local/php/var
error_log = log/php_error_log
[www]
catch_workers_output = yes
2.修改php.ini中設(shè)置,沒有則增加
log_errors = On
error_log = "/usr/local/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE
3.重啟php-fpm,
當(dāng)PHP執(zhí)行錯(cuò)誤時(shí)就能看到錯(cuò)誤日志在”/usr/local/lnmp/php/var/log/php_error_log”中了
假如呈現(xiàn):http://www.server110.com/
[[email protected] etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_
[17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[17-Apr-2014 18:40:52] ERROR: FPM initialization failed
failed
那請(qǐng)?jiān)诘谝徊降臅r(shí)候,當(dāng)真將設(shè)置寫入相對(duì)應(yīng)的組中,否則就呈現(xiàn)上面的:ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output’
最后看看結(jié)果: