Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/Apache脚本崩溃(分段错误(11)_Php_Apache_Crash_Localhost_Osx Mavericks - Fatal编程技术网

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

PHP/Apache脚本崩溃(分段错误(11),php,apache,crash,localhost,osx-mavericks,Php,Apache,Crash,Localhost,Osx Mavericks,[已解决] 我正在本地主机上运行一个PHP脚本(包含一些include),该脚本在结束前不断崩溃 错误报告已打开。Opera、Safari和Firefox返回空屏幕。 但Chrome返回: 无法加载网页,因为服务器未发送任何数据。错误 代码:ERR\u EMPTY\u响应 Apache日志返回: [Sun Dec 15 19:29:23 2013][通知]儿童pid 34267退出信号 分段故障(11) 当我第一次遇到这个问题时,我正在使用PHP5.5.6 在降级到PHP5.4.21之后,问题仍

[已解决]

我正在本地主机上运行一个PHP脚本(包含一些include),该脚本在结束前不断崩溃

错误报告已打开。Opera、Safari和Firefox返回空屏幕。 但Chrome返回:

无法加载网页,因为服务器未发送任何数据。错误 代码:ERR\u EMPTY\u响应

Apache日志返回:

[Sun Dec 15 19:29:23 2013][通知]儿童pid 34267退出信号 分段故障(11)

当我第一次遇到这个问题时,我正在使用PHP5.5.6 在降级到PHP5.4.21之后,问题仍然存在

问题不在脚本内部。随机注释出两行50行代码就解决了问题。这让我怀疑我的脚本是否太长,无法执行

有人对我如何解决这个问题有什么建议吗

更新:

问题不仅出现在本地主机上,而且也出现在运行CentOs 6.4和PHP 5.3.3的Web服务器上,在Apache上出现相同的错误

[Sun Dec 15 23:15:10 2013][通知]儿童pid 18409退出信号 分段故障(11)

更新2:

从命令行运行php可提供:

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

在Encrypt.class.php上的第135行之前放置注释之后

$php index.php
分段错误:11

更新3:(解决方案)

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

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

UPDATE3:(解决方案)

PDO的持久选择让我的表现很糟糕

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

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

尝试从命令行运行脚本。如果脚本引发分段错误,则需要重新安装您的PHP版本。如果从命令行运行正常,则您可能应该重新安装Apache。到底是哪行代码引发此错误。您知道吗?@mistermanchly命令行上的文件对未定义的函数mcrypt_create_iv()进行了“致命错误”调用在第135行的Encrypt.class.php中。此函数在浏览器中工作正常。没有特定的行给出错误。当您降级php时,是否确定所有扩展名都被降级。因此文件也被降级了?可能您在PHP5.4或5.3中使用了PHP5.5 mcrypt扩展名(并且根本不包括在CLI读取的php.ini中)降级成功。通过macports升级并在osx 10.9上返回默认PHP更改httpd.conf中的路径。mcrypt扩展在我的PHP 5.3.3 Web服务器上也可以正常工作。如果您已经解决了这个问题,请将您的解决方案作为一个单独的答案发布,然后接受它?这使人们更容易看到问题的实质解决方法是,并将问题从“未回答问题”队列中删除。