service httpd restart / (98)地址已被使用

ste*_*and 12 centos6 apache-2.2

突然之间,我无法在 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]
Run Code Online (Sandbox Code Playgroud)

我尝试了很多我在网上阅读的内容,包括删除锁定文件。

我决定尝试重新启动服务器。重新启动后,尝试加载任何托管网站将导致“502 Bad Gateway”。

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked
Run Code Online (Sandbox Code Playgroud)

尽管处于“死亡”状态,但我现在可以加载网站了!

有时 service httpd restart 有效...

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
Run Code Online (Sandbox Code Playgroud)

但其他时候它会导致上面的第一个错误。在这种情况下,我可以使用以下方法修复它:

# killall -9 httpd
# service httpd start
Run Code Online (Sandbox Code Playgroud)

所以我可以解决它,但我真的很好奇发生了什么,想知道我是否应该担心。

小智 12

您可能在某个地方的配置中在该端口上定义了两次侦听器。

听 *:7080

如果您运行 Apache 配置测试,它会说配置没问题,直到您真正重新启动服务,它才会失败并出现与您所看到的类似的错误。

还要验证您的日志记录位置存在且可写且有空间可写,最后的消息是可疑的。


Ant*_*ito 9

SSH 到服务器并运行以下命令:

setenforce 0
Run Code Online (Sandbox Code Playgroud)

这将禁用 selinux 直到下次重新启动

然后尝试重新加载Apache

service httpd restart
Run Code Online (Sandbox Code Playgroud)

如果这有效,selinux 就被打开了。

要永久禁用此链接:

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