我尝试将我的 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
。从那里,您需要进一步了解此进程实际上是什么,是否希望它存在以及如何处理它。
作为一般性评论,实际上读错误消息 ;) 它们通常逐字逐句地说明问题所在,或者至少说明从哪里开始探索。根据我的经验,许多人不会超越“有某种错误消息,为什么要费心阅读它,有人帮忙!!!”;)但这些信息通常非常有用,希望您在这里看到这一点。