首页 文章

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

提问于
浏览
8

[SOLVED]

我正在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行代码可以解决问题 . 让我想知道我的脚本是否可以长时间执行 .

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

UPDATE:

问题不仅出现在localhost上,还出现在我在CentOs 6.4和PHP 5.3.3上运行的Web服务器上,在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: (Solution)

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

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

1 回答

  • 4

    更新3 :(解决方案)

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

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

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

相关问题