PHP / Apache在脚本上崩溃(分段错误(11)

时间:2013-12-15 19:38:33

标签: php apache crash localhost osx-mavericks

[解决]

我在localhost上运行一个PHP脚本(包含一些包含的脚本),在结束前一直崩溃。

错误报告已启用。 Opera,Safari和Firefox返回空白屏幕。 但Chrome返回:

  

无法加载网页,因为服务器未发送任何数据。错误   代码:ERR_EMPTY_RESPONSE

Apache日志返回:

  

[Sun Dec 15 19:29:23 2013] [notice] child pid 34267退出信号   分段错误(11)

第一次遇到问题时使用的是PHP 5.5.6 在降级到PHP 5.4.21之后,问题仍然存在。

问题不在脚本内部。随机评论出50行代码解决了这个问题。让我想知道我的脚本是否可能需要执行。

有没有人对如何解决这个问题有什么建议?

更新

问题不仅出现在localhost上,还出现在我在CentOs 6.4和PHP 5.3.3上运行的网络服务器上,在Apache上出现同样的错误。

  

[Sun Dec 15 23:15:10 2013] [notice] child pid 18409退出信号   分段错误(11)

UPDATE2:

从命令行运行php给出:

  

$ php index.php致命错误:调用未定义的函数   第135行的Encrypt.class.php中的mcrypt_create_iv()

在Encrypt.class.php上的第135行之前发表评论

  

$ php index.php
  分段错误:11

UPDATE3 :(解决方案)

在使用strace(strace php index.php)在命令行上运行索引后,我在其中一个查询中发现了问题。

经过一些调试(使用PDO而不是我自己的类)后,我发现问题是设置了我自己的PDO选项“ATTR_PERSISTENT => true”。禁用此选项解决了我的问题。

1 个答案:

答案 0 :(得分:4)

UPDATE3 :(解决方案)

PDO的持久性选项令我伤心欲绝。

找到strace的解决方案: 在使用strace(strace php index.php)在命令行上运行索引后,我在其中一个查询中发现了问题。

分离查询后,我用默认的PDO替换了我的类。添加我的课程的选项,直到它再次被打破: 经过一些调试(使用PDO而不是我自己的类)后,我发现问题是设置了我自己的PDO选项“ATTR_PERSISTENT => true”。禁用此选项解决了我的问题。