gpt4 book ai didi

尽管有 php.ini 设置,PHP 不记录脚本错误

转载 作者:搜寻专家 更新时间:2023-10-31 21:23:03 25 4
gpt4 key购买 nike

我正在将 PHP-FPM 与 NGINX 结合使用,但我无法获取错误日志以正确使用 PHP-FPM。

这是我的php.ini,相关部分:

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

www-pool.comf相关片段(PHP-FPM主进程加载的配置):

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('一些错误');

错误消息毫无问题地找到了 /var/www/logs/php-scripts.error.log 路径。但是,当我尝试像这样触发错误时:

trigger_error('一些错误', E_USER_WARNING);

错误没有记录在日志文件中。此外,当我启动故意损坏的 PHP 脚本时,屏幕上出现 500 Internal Server Error,但 PHP 错误日志中没有任何记录,例如:

// index.php
<?php
echo 'Trigger error'

注意上面缺少的 ; - 它应该在错误日志中报告错误,我只收到 500 Internal Server Error 并且日志中没有输出。

你能帮忙吗?谢谢。

最佳答案

从 error_reporting 和其他设置中删除引号,您的 php.ini 应该如下所示:

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

关于尽管有 php.ini 设置,PHP 不记录脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com