gpt4 book ai didi

php - Apache 不记录 php 错误

转载 作者:IT王子 更新时间:2023-10-28 23:58:17 26 4
gpt4 key购买 nike

PHP 通过 CLI 成功将错误记录到/var/log/php_errors.log。

但是 apache + php 不会记录错误。

[bla@notebook ~]$ apachectl -v
Server version: Apache/2.2.17 (Unix)
Server built: May 19 2011 03:15:39

[bla@notebook ~]$ php -v
PHP 5.3.6 with Suhosin-Patch (cli) (built: Mar 23 2011 13:28:00)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

php.ini 我有:

display_errors = On
error_reporting = E_ALL | E_STRICT
log_errors = On
error_log = php_errors.log

httpd.conf:

ErrorLog "/var/log/httpd/error_log"

权限:

[bla@notebook /]$ ls -la /var/log/httpd/
-rwxrwxr-x 1 root root 133351 21.11.2011 11:18 access_log*
-rwxrwxr-x 1 root http 1307 21.11.2011 11:18 error_log*

[bla@notebook /]$ ls -la /var/log/php_errors.log
-rwxrwxr-x 1 root http 521 14.11.2011 17:31 /var/log/php_errors.log*

如您所见,Apache 守护进程有权写入日志文件。

在/var/log/php_errors.log 和/var/log/httpd/error_log 中仍然没有来自 Apache 或 PHP 的错误。

更新 1。

在 php.ini 中更改了这一行:

error_log = php_errors.log 

到完整路径:

error_log = /var/log/php_errors.log 

权限没问题。但如果有人也有问题,您可以调试设置日志文件 0777 的权限或更改文件所有者。

最佳答案

Apache 和 CLI 通常有两个单独的 php.ini 文件 - 您确定您正在查看正确的文件吗?

编辑:

我能想到的另外 2 个选项:

  • 某些 Apache 指令干扰了 PHP 的日志路径(或禁用了日志选项,尽管这种情况不太可能发生)- 尝试在 php.ini 中设置日志文件的绝对路径(@Frosty Z 提出了一些建议像这样)
  • 我注意到您的 PHP 安装应用了 Suhosin 补丁,它做了一些限制性修改以提高安全性。虽然理论上 http 用户组中的用户有足够的权限写入日志文件 - 可能存在一些类似 suphp 的行为,当您的脚本通过 web 访问时,它会执行/作为设置为所有者(脚本的文件所有者)的用户名 - 尝试更改它。

关于php - Apache 不记录 php 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8209729/

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