不知出于什么原因,我把 Apache 搞得一团糟(Ubuntu 12.04)。下面的输出抱怨 configtest 失败和分段错误。但是,我在 中找不到任何东西/var/log/apache2/error.log
。我该如何调试这个“configtest”?
jeroen@jeroen-ubuntu:~$ sudo service apache2 stop
* Stopping web server apache2
* The apache2 configtest failed, so we are trying to kill it manually. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!
... waiting [ OK ]
jeroen@jeroen-ubuntu:~$ sudo service apache2 start
* Starting web server apache2
Segmentation fault
Action 'start' failed.
The Apache error log may have more information.
[fail]
编辑:该问题与 apache2 模块的加载有关。我在以下位置发现了该问题的一些踪迹/var/log/kern.log
:
Mar 14 20:44:27 jeroen-ubuntu kernel: [13267.367260] show_signal_msg: 9 callbacks suppressed
Mar 14 20:44:27 jeroen-ubuntu kernel: [13267.367264] apache2[20784]: segfault at b638f7b5 ip b638f7b5 sp b5ed42e0 error 14
Mar 14 20:44:27 jeroen-ubuntu kernel: [13267.367268] apache2[20786]: segfault at b638f7b5 ip b638f7b5 sp b383f2e0 error 14
我已经使用这个模块好几年了,它一直很稳定。我最近一直在从 PPA 存储库安装一些反向移植,我怀疑其中一个软件包破坏了我的系统...
答案1
如果configtest
失败了,也没什么好担心的。这基本上意味着你的某个 Apache 配置文件出了问题。以下是我列出的你应该做的事情:
- 在发生这种情况之前,您是否编辑过 Apache 配置文件?哪一个?在哪里?您可以恢复备份或已知良好的配置吗?基本上,我会仔细检查配置。配置选项中的拼写错误等简单问题都可能是原因。或者文件已损坏?
- 这是在主配置中
/etc/apache2/apache2.conf
还是在什么地方/etc/apache2/sites-enabled
?如果它在主配置文件中,它会更经常地出现在error.log
?如果不是,也许在连接到虚拟主机的单独日志中? - 运行时您的虚拟主机配置是什么样的
sudo apachectl -S
?这可能为 Apache 正在使用的配置提供另一个线索。 - 除了上述情况之外,您是否向 Apache 添加或尝试添加任何模块?您可以禁用它们吗?您在某些评论答案中指出模块可能是原因。不要依赖可替换的软件。只需将其删除并重新安装模块即可。可能会损坏。
- 绝对最坏的情况是,除非你安装的 Apache 非常特殊(我建议备份你的配置),从
/etc/apache2
你的系统中删除 Apache 并重新安装。然后看看这个全新安装是否有效,如果有效,则根据备份文件重新进行配置。
答案2
谢谢,这个问题是在安装 PHP 7 并添加了一些软件包后立即出现的。
经过一番研究,发现/etc/apache2/mods-enabled/php5.load
指向的包要么是之前被删除的,要么是无法通过 apache start 加载的。只需删除内容,它就可以开始工作了。