我正在使用PHP5,CodeIgniter和Apache。 localhost php页面加载正常,然后突然他们开始崩溃Apache。
当apache崩溃时,网页似乎会进入不同的加载阶段。
Apache错误日志文件中唯一有趣的一行是:
[notice]父级:子进程退出,状态为3221225477 - 重新启动。
网上有很多关于这个问题的讨论,但似乎没有一个解决方案,不同的人已经描述了适用于他们系统的不同解决方案。
建议赞赏。
答案 0 :(得分:27)
由于Apache的默认堆栈大小较小,因此Windows中经常会出现此问题。当使用分配了大量堆栈的PHP代码时,通常会发生这种情况。
要解决此问题,请在apache配置文件httpd.conf
的末尾添加以下内容<IfModule mpm_winnt_module>
ThreadStackSize 8888888
</IfModule>
AND重启apache。 我从这个site获取此解决方案。
答案 1 :(得分:7)
我找到了一个适合我的解决方案。
我将以下两个文件从我的PHP目录复制到Win32目录,并且错误已停止:php5apache.dll,libmysql.dll。
所以即使在某些情况下应该在PHP目录中找到这些文件,它们也需要在系统目录中
答案 2 :(得分:3)
在我的情况下,它是php扩展APC(php_apc.dll,3.1.10-5.4-vc9-x86,threadsafe),导致错误。
我使用XAMPP 1.8.2和PHP 5.4.19以及Apache 2.4.4
由于它也可能是由另一个扩展引起的,因此从xampp发行版中恢复原始php.ini可能是一个很好的起点。如果这个工作正常,请尝试逐行更改为所需的配置(从扩展名列表开始)。
答案 3 :(得分:2)
我们正在运行Apache的两个副本,每个副本都有自己的PHP版本。
在搜索此错误并尝试将文件复制到windows system32文件夹的不同建议后,我终于发现问题似乎是在windows路径中找到的libmysql.dll的多个副本。
将libmysql.dll文件复制到apache bin文件夹后,我们不再遇到此问题。
答案 4 :(得分:2)
我遇到了问题 - 检查完文件夹后,我发现我的php目录中没有php5apache.dll。所以我尝试从Win32文件夹中复制它 - 它已经大大改善了事情(我不会屏住呼吸:))
答案 5 :(得分:2)
我刚刚遇到这个问题一段时间,apache每5-15分钟重启一次。我的服务器服务于很多站点和一个流量很大的门户,我编写了门户网站,我只是想通了get_browser()函数有时会给出内存错误(取决于代理)。我刷新了browscap.ini,没有效果,重启仍然会发生,但据我删除使用此功能,apache不再重启。 我在Apache 2.0.5x中使用PHP 5.2.6 我希望这对其他人也有帮助。
答案 6 :(得分:2)
所以我的php目录中没有libmysql.dll,这似乎解决了这个问题。
我还将其添加到win32目录和apache bin目录
答案 7 :(得分:1)
我打电话时遇到同样的问题
$link = mysql_connect('127.0.0.1', $user, $password);
运行干净安装WampServer时从PHP脚本(http://www.wampserver.com/en/)
我试图复制DLL,如上所述,但我无法让它工作。
最后我改为UniformServer(http://www.uniformserver.com/)5.6.16,它充当了魅力。
希望这篇文章可以节省一些时间: - )
答案 8 :(得分:1)
我在上面尝试过,但它们都没有用。
经过长时间的调查,这非常简单:在我的一个ajax文件中,我在PHP代码中使用了这行
mysqlclose用来();
这就是问题所在。 现在一切都很好。
刚才提到。 也许可以帮助人们缩短调试时间。
答案 9 :(得分:1)
在我的情况下,这是一个openssl_public_encrypt()函数。
答案 10 :(得分:1)
我有同样的问题。复制DLL并没有解决它。所以我再看了一遍,发现这个帖子的答案对我有用。 Why does my XAMPP Apache service keep restarting?
在我的Nvidia控制面板中,我最初没有看到FIrstPacket设置,所以我卸载了Nvidia ForceWare网络访问管理器,然后通过Nvidia驱动程序重新安装它。重新启动后,FirstPacket设置可见,我确保它已被禁用,然后一切正常。
答案 11 :(得分:1)
这是一个有问题的mysql DLL混合的问题。请参阅此处获取解决方案: http://www.java-samples.com/showtutorial.php?tutorialid=1050
将dll复制到system32不是最好的事情,所以我建议正确安装apache + php + mysql,而不是将文件复制到system32,因为一旦dll存在 - 它们将被加载而不是更新的版本dll ,在将来的更新中。
答案 12 :(得分:0)
将文件php5apache.dll
从xampp\php\
复制到Windows\System32\
答案 13 :(得分:0)
看起来在某些 Windows 更新之后,如果您也设置了 open_basedir,则可能会出现此问题。这是我在https://www.apachelounge.com/viewtopic.php?p=39993
对我来说,注释掉 open_basedir 解决了这个问题并显着加快了网站速度。
如果适用,我计划进一步研究它并将其报告为错误。将使用任何新闻更新此答案。