PHP CLI将错误记​​录到文件,但PHP通过apache不会

时间:2013-10-19 20:07:07

标签: php apache logging

我正在尝试将PHP错误记录到日志文件中。我在php.ini中进行了必要的更改,并将日志文件的权限调整为777.PHP CLI记录正常,但是通过apache没有。

  • 我知道使用的php.ini是正确的。我通过apache为CLI和php提供了一个文件。
  • 我创建了日志文件,为了测试,我将权限设置为777。
  • 我在php文件上生成错误但没有记录任何内容。
  • 我还在生成错误的同一文件中尝试了phpinfo(),以检查值是否正确。

的php.ini:

error_log = /var/log/httpd/php.log
log_errors = On
error_reporting = E_ALL

版本:

[user@host httpd]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 13 2013 17:29:28

[user@host httpd]# php -v
PHP 5.4.13 (cli) (built: Mar 14 2013 08:57:49)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

我已经通过所有类似的问题,但没有运气。特别是this one,其中解决方案是在php.ini中设置日志的完整路径。事实并非如此。

2 个答案:

答案 0 :(得分:1)

很可能你有chroot-ed apache或者来自systemd的“有帮助”重定向。

我遇到了同样的问题,只是搜索了系统的文件名。

# find / -name apay_api.log 2>/dev/null
/mnt/FAST/tmp/systemd-private-edd1fc8681054769ac401c6bd8358fdd-apache2.service-mP51C4/tmp/apay_api.log

所以也可能是你的情况。

原因是

PrivateTmp=true

在/usr/lib64/systemd/system/apache2.service等文件中。

答案 1 :(得分:0)

如果php作为其模块,Apache会设置自己的日志文件。换句话说,它取决于apache设置。尝试在apache配置文件中找到“Log”选项。