2

我有一个类文件,其中包含一些错误代码,例如

  else{
            $stp->Object($a);               
            $abbr = $a->abbr;
        }
        asdf
    } 

我的理解是 php 应该正确显示错误消息,例如说“asdf”不是类或常量等。但是当我看到这段代码时,服务器因分段错误而崩溃,正如我的错误日志文件所说:

[Fri Mar 08 17:21:37 2013] [notice] child pid 8615 exit signal Segmentation fault (11)

是否可以配置 php/apache 以正确处理这些错误?为什么 php 无法以某种可以理解的方式报告错误。我只在浏览器中看到“连接已重置”消息。

规范:安装了 XAMPP (php 5.3.1) MAC OS 10.6 Xdebuger

4

1 回答 1

1

显然 Apache 出现了问题,因此无法正确显示,因为 Apache 子退出。

我曾经遇到过一些类似的错误,因为 PHP 错误重定向到包含相同错误的 PHP 错误文件(例如:ErrorDocument 500),因此它重定向到 PHP 错误页面等等......制作了一个重定向循环。

Apache 自杀是为了避免机器宕机。


您必须诊断是什么导致 Apache 死机。

为此,请安装“strace”,例如。在 debian 上:

apt-get install strace

然后停止您的 Apache,并通过 strace 启动它:

strace -f /usr/sbin/apache2ctl

重现您的问题,直到您的 Apache 子崩溃,并尝试查看 strace 日志以找出发生了什么。

希望这有帮助。

于 2013-03-14T13:06:35.540 回答