【问题标题】:display_errors ON has no effect (Apache 2.4.7 & PHP 5.5.8-2)display_errors ON 无效 (Apache 2.4.7 & PHP 5.5.8-2)
【发布时间】:2014-04-21 18:37:55
【问题描述】:

我的 http 服务器(实际上是 Apache 2.4.7 和 PHP 5.5.8-2)在 debian 上运行时出现问题。 如果没有启用 display_errors,服务器会返回一个 500-http 错误,但是当使用 php.ini 或 apache vhost 指令启用 display_errors 时,服务器只会向客户端返回一个空白(或在错误之前发生的任何输出)。我无法以任何方式显示实际发生的 php 错误。

这里我有来自 phpinfo() 的配置部分

error_reporting         0
display_errors          On
display_startup_errors  On
html_errors             On
log_errors              On

这是我尝试测试的实际 php 文件

<?php
echo "A message before php-error occurs";
foobar1();
echo "A message after error occured";
?>

第二条消息没有显示,就像没有php错误输出一样,无论是在http请求中还是在服务器的错误日志中。 HTTP 状态码为 200。

HTTP/1.1 200 OK
Date: Sun, 16 Mar 2014 16:18:36 GMT
Server: Apache/2.4.7 (Debian)
Strict-Transport-Security: max-age=604800
X-Powered-By: PHP/5.5.8-2
Content-Length: 33
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

A message before php-error occurs

如果有人知道问题出在哪里,如果我能得到答复,那就太好了。每当本地机器发生错误时,我都必须复制生产平台以获取 php 错误输出。

【问题讨论】:

  • 错误日志怎么样?为什么要压制E_NOTICE?
  • 我已经更新了我的测试场景和我的帖子,E_NOTICE 不是问题所在。此外,给定的代码示例应该以真正的错误结束,没有通知。错误日志总是空的,不知道为什么,在我的本地实例上它可以工作..
  • 你确定你正在运行这个特定的脚本吗?如果全部换成&lt;?php echo 'foo';,你会观察到相应的变化吗?
  • 是的,我确信我编辑了正确的脚本。这里我有一个例子:test.foxylion.de 显示所有文件(包括配置和日志文件)。
  • 您在phpinfo() 的输出中看到实际的“E_ALL”字符串了吗?你到底是怎么设置这个值的?

标签: php apache error-handling


【解决方案1】:

查看您的phpinfo.phperror_reporting 的值为0,这意味着它不是从您的虚拟主机配置中设置的。

根据 PHP 文档

在 PHP 之外使用 PHP 常量,例如在 httpd.conf 中,将没有任何意义,因此在这种情况下需要整数值。 并且由于错误级别会随着时间的推移而增加,因此最大值(对于 E_ALL) 可能会改变。所以代替 E_ALL 考虑使用 更大的值来覆盖从现在到现在的所有位域 未来,一个像 2147483647 这样的数值(包括所有错误,而不仅仅是 E_ALL)。

在您的 virtualhost.conf 中插入 E_ALL ( 32767 ) 的数字常量。

可以在此处找到错误代码常量的完整列表:http://www.php.net/manual/en/errorfunc.constants.php

你也可以试试插入

error_reporting(E_ALL);

在您的 PHP 脚本顶部查看您是否收到以这种方式显示的错误报告。

【讨论】:

  • 非常感谢,这是问题所在。如果使用php_admin_value 和E_ALL 设置error_reporting 值。所以它被固定为0,因此我在 php 文件中尝试的任何覆盖都失败了。
猜你喜欢
  • 1970-01-01
  • 2015-10-15
  • 2011-08-20
  • 1970-01-01
  • 2016-02-02
  • 2015-05-02
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多