无法获取 PHP 错误以转到日志文件(Apache 日志除外)

Can't get PHP errors to go to a log file (other than the Apache log)

提问人:ReverseEMF 提问时间:9/7/2013 最后编辑:halferReverseEMF 更新时间:2/16/2021 访问量:4296

问:

在 Ubuntu Web 服务器 [LAMP] 上,我试图将 PHP 错误写入 php_error 文件,但无论我做什么,它们都会继续进入 apache 日志。

这是我尝试/做过的:

  1. 编辑了php.ini文件:

    • error_reporting = E_ALL |E_STRICT
    • display_error = 关闭
    • log_errors = 开
    • error_log = /var/log/php_errors.log
  2. 重新启动了 Apache

  3. 检查了输出以验证我对php.ini文件所做的更改是否进行了 - 他们做到了。phpinfo()

  4. 在验证错误仍然进入 Apache 日志后,我实际创建了php_errors.log并重试。仍然要去Apache日志!

  5. 已重新启动Web服务器!还。。。!

有人有解决方案吗?

php Apache lamp 报告 错误日志

评论

0赞 DevlshOne 9/7/2013
check 大于 0log_errors_max_len
0赞 Michael Berkowski 9/7/2013
Web 服务器是否有权创建?您可能需要将其放置在 Apache 可以写入 like 或/var/log/php_errors.log/var/log/httpd/php_errors.log/var/log/apache2/php_errors.log

答:

2赞 DaveyBoy 9/7/2013 #1

检查 的目录权限。确保运行 Web 服务的用户对该文件夹具有写入权限。或者,创建一个子文件夹 (/var/log/phplogs?) 并为相关用户分配显式权限,然后将值更改为文件夹中的文件/var/logerror_log

2赞 ReverseEMF 3/19/2015 #2

这与所有权有关。一个或另一个奏效了[出于我不清楚的原因]:

chown www-data:www-data /var/log/php_error.log

chown same-user-as-www-home:same-user-as-web-home /var/log/php_error.log

此外,以下方面也有所作为:

chmod 664 /var/log/php_error.log

[与chmod 644相反......再次出于我不清楚的原因]

0赞 magallanes 2/16/2021 #3

作为记录,Ubuntu 使用 AppArmor,它限制了 Apache 的功能。

此外,若要更改对文件的权限并编辑php.ini文件,必须执行以下步骤:

转到下一个文件

/etc/apparmor.d/抽象

编辑此文件

apache2-通用

添加下一行

/var/log/php_errors.log rw,

其中 rw 表示进程可以读取和写入此文件

或者你也可以做:

sudo nano /etc/apparmor.d/abstractions/apache2-common

最后,重新加载apparmor的配置

systemctl reload  apparmor

注意:Centos/Redhat/Oracle Linux 使用 SELinux,它需要相同的步骤,但配置不同。