我最近把我的网站移到了新的服务器(Apache 2,PHP5,MySQL5)。 该网站是一个基于Invision的论坛。 每一个post/主题只是挂起。 数据已被写入,因为如果您停止并重新加载,后/线程在那里。 我以为这是一个写作问题,但不是。 数据被写入,但页面加载永远不会完成。 它不会离开数据input的页面。
解决此问题的最佳方法是什么? 我最近做的唯一事情就是减less我的MySQL超时时间,但是我看不到这是一个问题,因为这些值仍然足够大,MySQL日志中没有提到超时。 logging在PHP的错误日志中也没有。
编辑 :我检查了我的服务器状态。 这一切看起来不错,但我有一个怀疑,我打我的ServerLimit,所以我加倍了。 还启用了我的Keepalives。 将密切关注它。
编辑2 :现在已经过了几天,这仍然是发生。 我有更多的信息,但;
更新(05/04) :我从源代码build立了最新版本的Apache和PHP,没有运气。 然后我删除了这些,并使用remi回购更新我所有的包到最新的稳定。 Segfaults似乎已经停止,但悬挂继续。
ini的在:
更新 – 解决! – 问题是在MySQL中有一个巨大的查询caching大小。 这是2GB,将其更改为64M分类。
- Apache正在抛出seg错误
这是你的问题。 Apache不挂,当apache的孩子死亡并且没有完成请求时,你的浏览器被挂起。
LogLeveldebugging可能会给你更多的信息(尽pipe如此,如果这是一个繁忙的生产系统,大量的信息)。
我的第一个猜测是suhosin / mod_security,或者是针对错误的php api编译的,或者可能使用稍微改变了的共享库。 我会仔细检查这些,如果你可以隔离正在运行的不同的php扩展/ apache模块。 你正在运行apcc,eaccelerator或任何操作码caching? Zend的? 来源守护者? Ioncube公司? 你正在使用这些每个正确的版本? 最新更新? Zend 3.3.9,ioncube也有最新的更新,可能会导致段错误取决于您正在运行的Zend的版本。
把strace或gdb这样的东西绑定到所有的apache工作进程,并在浏览器中重新加载页面。 然后你会看到更多关于它在崩溃时正在做什么的信息。
当你说你已经启用了coredumps,你是否也使它们足够大来处理Apache coredump? 它可能会相当大,所以即使将它们暂时设置为无限大小也可能有所帮助。
这里有一些提示,考虑到大量的可能性和less量的细节。
如果没有这个工作,请发布php.ini,httpd.conf和my.cnf的内容。
如果你使用firefox安装Firebug插件。 通过单击浏览器右下angular的错误图标启用它,然后在“networking”选项卡中设置“启用”。 加载您的论坛页面,并检查错误。
这很有可能是服务器操作系统或硬件的严重问题。
我试图做一个validation的操作系统(基于Debian的Linux使用debsums ,不知道其他)。
也试试memtestx86+这应该确认没有大量的内存问题,他们只能在负载下显示运行。
我看到与DNS有关的类似问题,您是否有机会发布网站URL?
编辑:刚才看到你已经提到,运行该网站通过http://www.intodns.com/它也可能与服务器主机名相关。 就像我说的,如果你不介意发布域名可能会更容易。
尝试停止Apache,然后重新启动:strace / path / to / httpd -X(只有一个worker将会启动,Apache不会从控制台分离)重新生成hang并检查strace的输出。 这应该本地化系统的哪个部分崩溃。
尝试减lessMySql中的查询caching大小。