为什么我无法在Ubuntu上重新加载apache2?

9
在Ubuntu上,每次我使用sudo service apache2 reload命令重新加载apache2服务时,我的终端会显示:
apache2.service is not active, cannot reload.     

我正在尝试将phpMyAdmin添加为虚拟主机,并使用phpmyadmin.local作为本地网络域名,有人能告诉我如何操作吗?今天我已经尝试了很多次,搜索了很多方法,但到现在为止,仍然显示404未找到

3个回答

19

我在Ubuntu 16.04也遇到了同样的问题。这导致logrotate出现问题,因为它无法在旋转日志后重新加载Apache。

我收到的完整错误信息:

/etc/init.d/apache2 reload
[....] Reloading apache2 configuration (via systemctl):    apache2.serviceapache2.service is not active, cannot reload.
 failed!

通过使用 apachectl 停止 Apache,并使用 /etc/init.d/apache2 启动,问题得到解决:

apachectl stop
/etc/init.d/apache2 start

您现在可以重新加载Apache:

/etc/init.d/apache2 reload
[ ok ] Reloading apache2 configuration (via systemctl): apache2.service.

如果您使用apachectl start启动Apache,则它不会被标记为活动服务,因此您无法使用service apache2 reload重新加载它。您必须使用/etc/init.d/apache2 startservice apache2 start启动Apache。

我不确定这是否是预期的行为还是一个错误。我无法在旧系统上重现这个问题。


这个解决方案对我也起作用了,我仍然困惑于原因,并且有点害怕不知道,但至少这是一个修复方法。 - Ryan Kozak

16

实际上,你应该检查一下80端口是否有其他服务/服务器正在运行:

sudo netstat -tulpn | grep :80
如果不是apache2,请停止它(对我来说是lighttpd,所以运行sudo service lighttpd stop)。
然后启动apache2(sudo service apache2 start),并享受吧!

3
太好了!谢谢,这正是我的问题所在,我有一些NGINX服务器正在运行 :) - MrGoofus
救命稻草!nginx 怎么可能自己运行,为什么会这样呢? - Abdul Sadik Yalcin
你在2021年仍然拯救生命,哈哈。感谢兄弟的提示! - Marinario Agalliu

0

检查是否缺少/usr/sbin/apache2 如果缺少,请执行:sudo apt install --reinstall apache2-bin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接