Apache 无法启动 - 地址已被使用 - 无法监听连接,无法打开日志

Apache 无法启动 - 地址已被使用 - 无法监听连接,无法打开日志

我安装了 Debian 9(Bitnami 设备),其中有 Moodle 学习系统和 Lambda 主题。我们启用了 https。我尝试根据最佳实践保护 Apache 服务器,最后我更改的两件事是在某些配置文件中添加“FileETag None”,并安装了 apachetop 来监控 Web 服务器。我猜是 apachetop 安装导致了这个问题。当我在浏览器中输入 IP 时,我得到了 Apache Web 服务器的初始屏幕,但网页不起作用。

当我尝试启动 apache 时,出现以下信息:

root@debian:/etc# sudo /opt/bitnami/ctlscript.sh start apache

Syntax OK
(98)Address already in use: AH00073: make_sock: unable to listen for 
connections on address [::]:80
(98)Address already in use: AH00073: make_sock: unable to listen for 
connections on address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
/opt/bitnami/apache2/scripts/ctl.sh : httpd could not be started
Monitored apache

我尝试在网上搜索解决方案,但没有找到完全相同的错误消息。大多数关于绑定的类似问题的答案都是关于杀死第二个 apache 进程,但我发现只有一个 apache2 在监听。我试过这个:

root@debian:/etc/apache2/sites-enabled# sudo netstat -ltnp | grep ':80'
tcp6       0      0 :::80                   :::*                    LISTEN      
475/apache2

root@debian:/etc/apache2/sites-enabled# netstat -tulpn | grep apache2
tcp6       0      0 :::80                   :::*                    LISTEN      
475/apache2

root@debian:/etc/apache2/sites-enabled# sudo netstat -ltnp | grep ':443'
root@debian:/etc/apache2/sites-enabled#

我还将日志的所有权更改为 www-data,但没有任何变化。当我用此停止 apache 时

root@debian:/# /opt/bitnami/ctlscript.sh status apache
apache not running
root@debian:/# netstat -tulpn | grep apache2
tcp6       0      0 :::80                   :::*                    LISTEN      
475/apache2

我在浏览器中输入 ip 仍然可以访问“Apache2 Debian 默认页面”。这正常吗?

嗯,现在开始起作用了,

root@debian:/home/bitnami# ps aux | grep apache
root       462  0.0  0.4  75612  4268 ?  Ss   09:04   0:00 /usr/sbin/apache2 -k start
www-data   463  0.0  0.3 364772  4036 ?  Sl   09:04   0:00 /usr/sbin/apache2 -k start
www-data   464  0.0  0.3 364772  4036 ?  Sl   09:04   0:00 /usr/sbin/apache2 -k start
root      1179  0.0  0.0  12784   960 pts/0    S+   09:05   0:00 grep apache
root@debian:/home/bitnami# kill 462
root@debian:/home/bitnami# kill 463
bash: kill: (463) - No such process
root@debian:/home/bitnami# kill 464
bash: kill: (464) - No such process
root@debian:/home/bitnami# kill 1179
bash: kill: (1179) - No such process
root@debian:/home/bitnami# /opt/bitnami/ctlscript.sh start apache
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
Monitored apache

我认为杀死第一个进程可以使其工作,但是在服务器重启后我收到相同的错误消息,并且需要杀死该进程并启动 apache :(

答案1

这是一个线索。

(98)地址已被使用:

这证实了线索所暗示的内容。

tcp6 0 0 :::80 :::* 侦听 475/apache2

Apache 已在监听端口 80,这就是启动命令失败的原因。

只是一个想法......在启动新的 apache 之前,最好先停止当前正在运行的 apache。

答案2

我首先会尝试定期停止 Apache

root@debian:/etc# sudo /opt/bitnami/ctlscript.sh 停止 apache

之后,它会智能地查看 Apache 是否真的关闭

ps 辅助 |删除 Apache

如果你看到 apache 的进程 ID,请尝试首先发送 kill 信号

进程 ID

再次列出进程附言命令,如果你看到 apache,用 SIGKILL 杀死它

杀死-9进程 ID

现在,您将看到 apache 仍在运行 -> 这意味着正在重新启动它,您需要找出原因。否则您将看不到任何进程。如果是这种情况,请重新启动 apache。

root@debian:/etc# sudo /opt/bitnami/ctlscript.sh 启动 apache

如果再次出现错误,则意味着 apache 已启动两次。因此启动脚本可能存在问题/opt/bitnami/ctlscript.sh但我对此深表怀疑。

一旦您确定问题是否是因为 apache 在您终止它时自动重新启动或启动两次,您应该能够更深入地研究问题,但我怀疑是否可以通过像这样的 QA 站点进行正确的调试,而是建议由经验丰富的管理员进行。

相关内容