由于某种原因,大多数周日当地时间凌晨 5-6 点左右 Apache 无法正常工作。我找不到原因,只能苦苦寻找解决办法。
我在 Apache2 上运行 Magento,使用 SSL 证书,在那个特定时间左右,随机页面停止运行,导致无法下订单。有时是类别页面,有时是管理区域。
我认为这可能是日志轮换,但不确定如何进一步排除故障。这是我过去两个星期日的 Apache 错误日志:
1月29日
/var/log/apache2/error.log.1:[2012 年 1 月 29 日星期日 00:35:21] [错误] 服务器已达到 MaxClients 设置,请考虑提高 MaxClients 设置
/var/log/apache2/error.log.1:[2012 年 1 月 29 日星期日 00:39:44] [错误] [客户端 66.87.100.194] 请求失败:读取标头时出错
/var/log/apache2/error.log.1:[2012 年 1 月 29 日星期日 06:25:21] [通知] 请求优雅重启,正在重启
--- 注意新的日志文件
/var/log/apache2/error.log:[2012 年 1 月 29 日星期日 06:25:24] [通知] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze1 已配置 Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8o - 恢复正常操作
/var/log/apache2/error.log:[2012 年 1 月 29 日星期日 06:26:00] [通知] 子进程 pid 7301 退出信号分段错误 (11)
1 月 22 日
/var/log/apache2/error.log.2.gz:[2012 年 1 月 22 日星期日 06:25:17] [通知] 已请求优雅重启,正在重启
--- 注意新的日志文件
/var/log/apache2/error.log.1:[2012 年 1 月 22 日星期日 06:25:22] [通知] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze1 已配置 Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8o - 恢复正常操作
/var/log/apache2/error.log.1:[2012 年 1 月 22 日星期日 16:26:11] [通知] 捕获 SIGTERM,正在关闭
/var/log/apache2/error.log.1:[2012 年 1 月 22 日星期日 16:26:12] [通知] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze1 已配置 Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8o - 恢复正常操作
/var/log/apache2/error.log.1:[2012 年 1 月 22 日星期日 16:26:14] [通知] 子进程 pid 30367 退出信号分段错误 (11)
答案1
不完全是编程问题,但是有这个
server reached MaxClients setting, consider raising the MaxClients setting
哪个表示 Apachex 正在尝试接受更多请求(一次)比配置的要多。增加这个数字可能是个好主意。
还有这两行
/var/log/apache2/error.log:[Sun Jan 29 06:25:24 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze1 with Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8o configured -- resuming normal operations
/var/log/apache2/error.log.2.gz:[Sun Jan 22 06:25:17 2012] [notice] Graceful restart requested, doing restart
这表明有人正在升级服务器软件包,这可能会影响服务器本身的性能。
ServerFault 是提出此类问题的好地方。
更好的地方是您的 ISP/IT 部门/Web 主机。
答案2
您是否同时运行任何 cronjobs?我的直觉是,正在运行系统更新,该更新会更新您的 apache 应用程序加载的某些共享库,这通常会导致段错误。
答案3
我在 Google 上搜索了有关“段错误”的错误,大多数错误与第三方应用程序有关,这些应用程序可能是 eAccelerator、iconcube、zend 编码器等。此外,有人写了一条评论,可能与 PHP 版本有关。他们的建议是卸载整个 PHP,然后重新安装。
我的建议是,如果您有 eAccelerator,请暂时移除它,然后再次查看日志。如果错误继续,请尝试安装不带“Suhosin”补丁的全新 PHP。