我如何才能弄清楚为什么 apache/php 崩溃?

我如何才能弄清楚为什么 apache/php 崩溃?

我遇到了一个问题,它让我和该服务器上的几个客户端完全抓狂。

问题是 PHP(或者我猜是 Apache)似乎几乎每天都会随机崩溃。

我的专用服务器运行的是 Linux 和 Plesk 9.5,有 1GB 的 RAM,实际上只运行了 5 个网站,而且流量也不大。

我按照网站托管商的建议查看了 httpd error_log,发现 5 个 wordpress 3.0 站点中每个站点都报告了大量 php 问题。主要与缺少 php 包含文件等问题有关,我最终解决了这些问题。

不幸的是,我修复的问题似乎都与 Apache 崩溃无关,所以我想问你们我下一步该怎么做。

我当然想确切地知道为什么会发生这种情况,这样我不仅可以立即解决这个问题,而且还知道将来如何正确诊断这样的问题。

我的网络主机解决方案是添加更多内存,但尽管这“可能”是实际原因,但我无法相信这 5 个网站消耗了这么多内存。

无论如何,我只是在寻找专家用来诊断和解决这个问题的具体步骤。

此外 - 下面我列出了我的errors_log文件中列出的其他未解决的错误的几个要点,因为我不知道这些是否有帮助。

[2010 年 12 月 13 日星期一 17:00:53] [警告] 初始化:您不应将基于名称的虚拟主机与 SSL 结合使用!! [2010 年 12 月 13 日星期一 17:00:54] [通知] 已配置适用于 Apache 2.1.7 的 ModSecurity - Apache/2.2.8 (Fedora) [2010 年 12 月 13 日星期一 17:00:54] [警告] 模块 jk_module 已加载,正在跳过 [2010 年 12 月 13 日星期一 17:00:54] [警告] 模块 ssl_module 已加载,正在跳过 [2010 年 12 月 13 日星期一 17:00:54] [通知] 摘要:正在生成摘要身份验证的秘密... [2010 年 12 月 13 日星期一 17:00:54] [通知] 摘要:完成 [2010 年 12 月 13 日星期一 17:00:54] [警告] RSA 服务器证书 CommonName (CN) plesk' does NOT match server name!? [Mon Dec 13 17:00:54 2010] [warn] RSA server certificate CommonName (CN) domain****.com' 与服务器名称不匹配!? [2010 年 12 月 13 日星期一 17:00:54] [警告] RSA 服务器证书 CommonName (CN) domain****.com' does NOT match server name!? [Mon Dec 13 17:00:54 2010] [warn] RSA server certificate CommonName (CN) domain****.com' 与服务器名称不匹配!? [2010 年 12 月 13 日星期一 17:00:54] [警告] 初始化:SSL 服务器 IP/端口冲突:atmail.webmail:443(/etc/httpd/conf.d/zzz_atmail_vhost.conf:48)与 horde.webmail:443(/etc/httpd/conf.d/zzz_horde_vhost.conf:41)[2010 年 12 月 13 日星期一 17:00:54] [警告] 初始化:SSL 服务器 IP/端口冲突:wp3.excitesteps.com:443(/var/www/vhosts/domain****.com/conf/httpd.include:13)与 horde.webmail:443(/etc/httpd/conf.d/zzz_horde_vhost.conf:41)[2010 年 12 月 13 日星期一 17:00:54] [警告] 初始化:SSL 服务器 IP/端口冲突:domain******.com:443(/var/www/vhosts/domain******.com/conf/httpd.include:13)与 horde.webmail:443(/etc/httpd/conf.d/zzz_horde_vhost.conf:41)[2010 年 12 月 13 日星期一 17:00:54] [警告] 初始化:SSL 服务器 IP/端口冲突:domain******.com:443(/var/www/vhosts/domain******.com/conf/httpd.include:13)与 horde.webmail:443(/etc/httpd/conf.d/zzz_horde_vhost.conf:41)[2010 年 12 月 13 日星期一 17:00:54] [警告] 初始化:SSL 服务器 IP/端口冲突:default-2**-1**-2**-2**:443 (/etc/httpd/conf.d/zz010_psa_httpd.conf:84)vs. horde.webmail:443(/etc/httpd/conf.d/zzz_horde_vhost.conf:41)[2010 年 12 月 13 日星期一 17:00:54] [警告] 初始化:您不应将基于名称的虚拟主机与 SSL 结合使用!![2010 年 12 月 13 日星期一 17:00:54] [通知] mod_bw:分配的内存为 0 字节(每个 conf 占用 32 字节)[2010 年 12 月 13 日星期一 17:00:54] [通知] mod_bw:版本 0.8 - 已初始化 [0 Confs] [2010 年 12 月 13 日星期一 17:00:55] [通知] mod_python:基于 256 个最大进程和 0 个最大线程创建 4 个会话互斥锁。 [2010 年 12 月 13 日星期一 17:00:55] [通知] mod_python:使用 mutex_directory /tmp [2010 年 12 月 13 日星期一 17:00:55] [通知] Apache/2.2.8 (Unix) DAV/2 mod_jk/1.2.15 mod_ssl/2.2.8 OpenSSL/0.9.8b mod_auth_kerb/5.3 mod_auth_pgsql/2.0.3 Apache/2.2.0 (Fedora) PHP/5.2.6 mod_python/3.3.1 Python/2.5 mod_perl/2.0.3 Perl/v5.8.8 已配置 - 恢复正常操作 [2010 年 12 月 13 日星期一 18:09:26] [错误] [客户端 6**.5**.3**.1**] 文件不存在: /usr/share/psa-horde/robots.txt [2010 年 12 月 13 日星期一 18:09:27] [错误] [客户端 6**.5**.3**.1**] ModSecurity:无法设置变量“resource.alerted_960903_compression”,因为该集合不存在。[主机名“webmail.domain****.com”] [uri“/index.php”] [unique_id“T2ObHH8AAAEAACAU36UAAAAA”] [2010 年 12 月 13 日星期一 18:09:27] [错误] [客户端 6**.5**。.1] ModSecurity: 警告。运算符 EQ 匹配:0。[id“960903”] [msg“ModSecurity 不支持内容编码”] [严重性“警告”] [主机名“webmail.domain****.com”] [uri“/index.php”] [unique_id“T2ObHH8AAAEAACAU36UAAAAA”] [2010 年 12 月 13 日星期一 18:09:28] [错误] [客户端 6**.5**.3**.1**] ModSecurity:无法设置变量“resource.alerted_960903_compression”,因为该集合不存在。 [主机名“webmail.domain******.com”] [uri“/login.php”] [unique_id“T3@Qcn8AAAEAACAa6v8AAAAG”] [2010 年 12 月 13 日星期一 18:09:28] [错误] [客户端 6**.5**.3**.1**] ModSecurity: 警告。 操作员 EQ 匹配:0。 [id“960903”] [msg“ModSecurity 不支持内容编码”] [严重性“警告”] [主机名“webmail.domain****.com”] [uri“/login.php”] [unique_id“T3@Qcn8AAAEAACAa6v8AAAAG”] [2010 年 12 月 13 日星期一 18:09:30] [错误] [客户端 6**.5**.3**.1**] ModSecurity: 警告。操作员 EQ 匹配:0。[id“960903”] [msg“ModSecurity 不支持内容编码”] [严重性“警告”] [主机名“webmail.domain******.com”] [uri“/imp/login.php”] [unique_id“T5LVI38AAAEAACAb7LUAAAAH”]

非常感谢所有帮助

答案1

假设您已经检查过您正在运行的所有打包软件的错误/更新...

如果您还没有这样做,请配置您的服务器以保存核心文件并使用 gdb 从崩溃中获取堆栈跟踪,例如“gdb /usr/sbin/httpd core”,然后在提示符下输入 bt。

可能是一个非常具体的请求导致了错误 - IIRC,访问和错误日​​志都是在处理完成后写入的 - IIRC mod_security 可以在请求到达时记录它们(包括帖子变量) - 在您知道是什么导致崩溃之前,打开此功能是个好主意。

相关内容