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


8

最近,我们获得了一个备份服务器,以将所有数据镜像到主服务器故障的情况下。

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

因此,目前看来大部分内容都已同步(仍然需要弄清楚用户同步),我尝试启动Apache。我懂了

* Starting web server apache2                                       [fail]

没有其他迹象表明可能是什么问题。

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

谢谢!


到目前为止,我发现日志显示“没有这样的文件或目录:mod_fcgid”-这是一个好的开始
Lowgain 2010年

Answers:


11

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

[root@server ~]# strace -Ff apachectl start

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

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



3

任何错误都应打印到错误日志中(通常在/ var / log / http / error_logs中。在httpd.conf中使用Error的Grep查找位置)。

我建议使用两个窗口。在一个窗口中执行“ tail -f error_log”,然后在另一个窗口中运行“ apachectl restart”命令。找到错误后,在此处用错误消息更新答案。


任何事情中排在第一位的故障排除步骤应始终读取日志。Apache几乎记录了通过它的每个事件,因此您应该塞满所有数据来仔细研究。
phuzion 2010年

2

我在Mac OS上的debug apache服务器遇到了类似的问题,因此决定与他人分享经验并节省一些时间,我发现以下内容非常有用:

  1. 查找日志:

apachectl -S | grep log

  1. 在输出中,您将找到一些日志文件,可以开始查找错误示例:

tail -n 15 /var/log/apache2/ssl_engine.log

如果有多个日志文件,请继续跟踪它们,直到找到导致Apache无法启动的错误为止


0

如果您的Apache没有运行,请检查您的Skype端口,大多数情况下,Skype和apache都使用端口80,这意味着skype可能是apache无法启动的原因。如果已安装,请停止skype。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.