解决 apache 无法启动的最佳方法?

Low*_*ain 8 troubleshooting apache-2.2

我们最近获得了一个备份服务器,以在主服务器出现故障时将我们所有的数据镜像到其中。

我已经通过 rsync 更新了所有站点数据,并且更新了所有 apache 配置和数据库。两台机器都在 Ubuntu 9 上(主服务器为 9.04,备份为 9.10)。

所以在这一点上,一切似乎都同步了(仍然需要弄清楚用户同步),我尝试启动 Apache。我得到

* Starting web server apache2                                       [fail]
Run Code Online (Sandbox Code Playgroud)

没有其他说明可能是什么问题。

我知道我没有足够的信息来期待你们的解决方案,所以我只想知道我可以从哪里开始进一步调查这个问题。会有任何错误日志吗?

谢谢!

Ign*_*ams 18

httpd -t 将测试您的配置文件的语法并将任何错误输出到终端。

  • 这非常有帮助。+1 (2认同)
  • 如果这不起作用,请尝试`apachectl -t`。 (2认同)

小智 13

在某些特定情况下,日志条目不会写入磁盘——例如,如果日志不存在,或者 Apache 由于权限问题等原因无法写入日志文件,就会发生这种情况。在这种情况下,诊断错误的最佳方法是使用 `strace':

[root@server ~]# strace -Ff apachectl start
Run Code Online (Sandbox Code Playgroud)

虽然输出将非常冗长,但如果 Apache 由于任何原因无法启动,您将在尾端看到一个 write() ,其中包含在日志中输入的内容以及失败的原因(如果它没有记录)为什么在错误日志中,如果错误消息包含带有日志路径的“无法打开日志”,请不要感到惊讶;)。

尽管查看您对 mod_fcgid 的评论,但我建议您查看 Apache 配置并检查对 mod_fcgid 的引用——这听起来像是试图打开一个文字“mod_fcgid”文件而不是加载模块。