1
我遇到了一個奇怪的行爲。我正在用PHP-FPM運行NGINX。啓用PHP錯誤日誌時NGINX錯誤日誌被禁用
當我使PHP錯誤日誌中php.ini
:
error_log = /var/www/logs/php-scripts.error.log
log_errors = on
錯誤日誌寫入預期:
...
[15-Feb-2017 19:35:28 Etc/UTC] PHP Parse error: syntax error, unexpected end of file, expecting ',' or ';' in /var/www/html/index.php on line 7
然而,在同一時間在我的NGINX配置錯誤日誌虛擬主機根本不寫入(這是NGINX配置片段):
server {
listen 80;
server_name vhost.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log; <- this is always empty
}
現在讓我吃驚,當我禁用錯誤日誌中php.ini
:
; error_log = /var/www/logs/php-scripts.error.log <-- commented out
log_errors = on
Nginx的錯誤日誌寫入:
...
2017/02/16 12:01:44 [error] 13#13: *27 FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected end of file, expecting ',' or ';' in /var/www/html/index.php on line 7" while reading response header from upstream, client: 172.19.0.2, server: domain.com, request: "GET/HTTP/1.1", upstream: "fastcgi://172.19.0.3:9000", host: "domain.com:8080"
我不明白這種行爲在所有。兩個測井系統之間的干擾源是什麼?爲什麼我不能在php.ini
中啓用錯誤日誌,並同時將NGINX的錯誤日誌寫入?目前它是一個或另一個。有沒有可能解決這個問題?
如果我理解正確,重點是,如果我將PHP錯誤重定向到文件,錯誤不會發送到標準錯誤,因此,nginx將不會有任何流讀取,其錯誤日誌將爲空。 – luqo33
是的。完全正確。 –