首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Apache不记录php错误怎么办?

Apache不记录php错误怎么办?
EN

Stack Overflow用户
提问于 2018-03-02 00:46:39
回答 2查看 0关注 0票数 0

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

但apache + php不记录错误。

代码语言:javascript
复制
[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中我有:

代码语言:javascript
复制
display_errors = On
error_reporting = E_ALL | E_STRICT
log_errors = On
error_log = php_errors.log

httpd.conf:

代码语言:javascript
复制
ErrorLog "/var/log/httpd/error_log"

权限:

代码语言:javascript
复制
[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中更改了这一行:

代码语言:javascript
复制
error_log = php_errors.log 

要达到完全路径:

代码语言:javascript
复制
error_log = /var/log/php_errors.log 

可以调试logfile 0777的设置权限或更改文件所有者。

EN

回答 2

Stack Overflow用户

发布于 2018-03-02 08:59:31

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

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

  • 一些Apache指令正在搞乱PHP的日志路径(或者禁用日志记录选项,尽管这种情况不太可能) - 尝试在php.ini中设置日志文件的绝对路径
  • 我注意到你的PHP安装已经应用了Suhosin补丁,为了提高安全性,它进行了一些限制性修改。理论上,http用户组中的用户有足够的权限写入日志文件 - 可能会出现类似suphp的行为,并且当通过网络访问您的脚本时,将使用/作为用户名进行设置所有者(该脚本的文件所有者) - 尝试更改它。
票数 0
EN

Stack Overflow用户

发布于 2018-03-02 10:10:21

我有同样的问题。

设置log_errors_max_len = 0在php.ini为我工作。

PHP手册

设置log_errors的最大长度(以字节为单位)。在error_log中添加关于源的信息。默认值是1024,0不允许应用任何最大长度。这个长度适用于记录错误,显示错误,也适用于$ php_errormsg,但不适用于显式调用函数,如error_log()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档