更新 php 但无法重新启动 apache

更新 php 但无法重新启动 apache

我尝试将我的 php 版本更新到 php7.4,使用时php -v成功更新。但是它在我的 wordpress 上不起作用。而且我的 apache 无法重新启动。

我的 vestacp 中有多个站点。当我通过 查看 apache 状态时sudo systemctl status apache2,我得到了以下信息。非常感谢您的帮助。

apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)  
Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
Active: failed (Result: exit-code) since Sun 2023-01-01 18:06:26 HKT; 4min 49s ago

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 2400:8902::f03c:93ff:fecd:b912. Set the 'ServerName

(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

AH00015: Unable to open logs

Action 'start' failed.

The Apache error log may have more information.

apache2.service: Control process exited, code=exited status=1

apache2.service: Failed with result 'exit-code'.

Failed to start The Apache HTTP Server.

答案1

错误消息基本上说明了(当前)问题是什么:Apache 服务器需要绑定到端口 80,但其他程序已经在使用该端口。因此 Apache 服务器无法绑定到该端口,因此无法启动。

(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80

因此,下一步是检查究竟是什么占用了端口 80。这可能是您以为已经停止但实际上并未停止的 Apache 服务器的先前实例。这可能是其他软件或其他任何东西。

检查端口上运行程序的一种方法是使用该工具netstat

netstat -nap tcp | grep -i ':80'

netstat列出了当前“正在使用”的所有 TCP 端口。然后使用 过滤此列表grep。输出可能类似于

tcp6       0      0 :::80                   :::*                    LISTEN      392476/apache2

这表明 IPv6 的 TCP 端口 80 已绑定到进程392476,并且此进程被标识为apache2。从那里,您需要进一步了解此进程实际上是什么,是否希望它存在以及如何处理它。

作为一般性评论,实际上错误消息 ;) 它们通常逐字逐句地说明问题所在,或者至少说明从哪里开始探索。根据我的经验,许多人不会超越“有某种错误消息,为什么要费心阅读它,有人帮忙!!!”;)但这些信息通常非常有用,希望您在这里看到这一点。

相关内容