我正在使用NGINX的PHP-FPM,並且我無法獲得錯誤日誌以正確使用PHP-FPM。儘管php.ini設置PHP不記錄腳本錯誤
這是我php.ini
,相關部分:(由PHP-FPM主進程加載配置)的www-pool.comf
error_reporting = 'E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE'
error_log = /var/www/logs/php-scripts.error.log
log_errors = 'On'
display_errors = 'Off'
display_startup_errors = 'Off'
html_errors = 'Off'
open_basedir = /var/www/html/:/var/www/.tmp/:/var/www/logs/
upload_tmp_dir = /var/www/.tmp
相關片段:
listen = 9000
user = www-data
group = www-data
request_slowlog_timeout = 10
slowlog = /var/log/php-fpm/$pool.slow.log
chdir = /var/www/html
access.log = /var/log/php-fpm/$pool.access.log
catch_workers_output = Yes
/var/www/logs/
是可寫的www-data
- 用戶PHP-FPM和Web服務器正在運行。
現在,如果我這樣做在index.php
:
error_log('Some error');
錯誤信息找到其方式/var/www/logs/php-scripts.error.log
沒有問題。然而,當我嘗試觸發錯誤,像這樣:不被記錄在日誌文件中
trigger_error('Some error', E_USER_WARNING);
錯誤。此外,當我啓動故意打破PHP腳本,我得到的屏幕上的500內部服務器錯誤,但沒有被記錄到PHP錯誤日誌無論如何,如:
// index.php
<?php
echo 'Trigger error'
通知上述失蹤;
- 應報告錯誤日誌中的錯誤,我只得到500內部服務器錯誤,並在日誌中沒有輸出。
你能協助嗎?謝謝。
這是它。但是,爲了便於參考,可以使用雙引號:「;您可以將字符串用雙引號括起來include_path =」。:/ usr/local/lib/php「」謝謝 – luqo33
是的,雖然通常只對文件路徑或其他文本字符串。按照慣例,error_reporting值和On/Off通常會保留而不引用:) – ablopez