突然间,我无法在 CentOS 6.8 Web 服务器上重新启动 apache:
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:7080
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080
no listening sockets available, shutting down
Unable to open logs
[FAILED]
我尝试了在线看到的很多方法,包括删除锁文件。
我决定尝试重启服务器。重启后,尝试加载任何托管网站都会导致“502 Bad Gateway”。
# service httpd status
httpd is stopped
# service httpd start
Starting httpd: [ OK ]
# service httpd status
httpd dead but subsys locked
尽管处于“死亡”状态,但我现在能够加载网站了!
有时服务 httpd 重启会起作用......
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
但有时它会导致上述第一个错误。在这种情况下,我可以使用以下命令修复它:
# killall -9 httpd
# service httpd start
所以我可以解决这个问题,但我真的很好奇发生了什么,并想知道我是否应该担心。
答案1
您可能在某处的配置中两次定义了该端口上的监听器。
收听 *:7080
如果您运行 Apache 配置测试,它会说配置正常,直到您实际重新启动服务,它才会失败,并出现与您所看到的类似的错误。
还要验证您的日志记录位置是否存在并且可写并且有写入空间,最后的那条消息是可疑的。
答案2
SSH 到服务器并运行以下命令:
setenforce 0
这将禁用 selinux 直到下次重启
然后尝试重新加载 Apache
service httpd restart
如果这有效,selinux 就会被打开。
要永久禁用,请点击此链接: