我有一台安装了 Apache 2.4.7 的 Directadmin 服务器,但它莫名其妙地宕机了(可能是因为 bug)
一些日志:
[Wed Feb 19 08:16:48.801505 2014] [mpm_prefork:emerg] [pid 23327] (38)Function not implemented: AH00144: couldn't grab the accept mutex
[Wed Feb 19 08:16:49.179768 2014] [core:alert] [pid 30295] AH00050: Child 23327 returned a Fatal error... Apache is exiting!
[Wed Feb 19 08:16:55.660600 2014] [core:notice] [pid 30295] AH00060: seg fault or similar nasty error detected in the parent process
我没有向您显示双重错误,因为它们相同,有人看到出了什么问题吗?
在 php.ini 中:
zend_extension=/usr/local/lib/ioncube_loader_lin_5.4.so >zend_extension=/usr/local/lib/ZendGuardLoader.so
答案1
Apache 可以使用多种互斥(一种锁)处理技术。看来,实际使用的锁定机制在您的 Apache 版本中存在错误,或者与您的实际 mpm 不兼容。
最简单的方法是使用其他方法。您可以使用AcceptMutex
apache 配置中的指令来更改此设置。可能的值是(从http://httpd.apache.org/docs/2.2/en/mod/mpm_common.html):
AcceptMutex flock
AcceptMutex fcntl
AcceptMutex posixsem
AcceptMutex pthread
AcceptMutex sysvsem
在您的情况下看起来sysvsem
还是posixsem
最佳的,但任何其他指令也可以起作用。