服务 httpd 重新启动 / (98)地址已在使用中

服务 httpd 重新启动 / (98)地址已在使用中

突然间,我无法在 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 就会被打开。

要永久禁用,请点击此链接:

https://kb.plesk.com/en/115626

相关内容