当我尝试重新启动 Apache 时出现“无法打开日志”错误

当我尝试重新启动 Apache 时出现“无法打开日志”错误

当我尝试启动 apache 时出现以下错误

root@server11362:~# sudo /etc/init.d/apache2 restart

Restarting web server apache2 (98)Address already in use: 
   make_sock: could not bind to address 111.90.150.93:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information. 

事实上 apache 日志不包含更多信息。

netstat -tulpn返回以下内容

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1098/mysqld     
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1414/redis-server
tcp        0      0 111.90.150.93:53        0.0.0.0:*               LISTEN      1068/named      
tcp        0      0 111.90.150.92:53        0.0.0.0:*               LISTEN      1068/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1068/named      
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1194/postgres   
tcp        0      0 0.0.0.0:44888           0.0.0.0:*               LISTEN      845/sshd        
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1395/master     
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      1068/named      
tcp        0      0 0.0.0.0:6081            0.0.0.0:*               LISTEN      1435/varnishd   
tcp        0      0 127.0.0.1:6082          0.0.0.0:*               LISTEN      1434/varnishd   
tcp6       0      0 :::53                   :::*                    LISTEN      1068/named      
tcp6       0      0 :::44888                :::*                    LISTEN      845/sshd        
tcp6       0      0 :::25                   :::*                    LISTEN      1395/master     
tcp6       0      0 ::1:953                 :::*                    LISTEN      1068/named      
tcp6       0      0 :::6081                 :::*                    LISTEN      1435/varnishd   
udp        0      0 111.90.150.93:53        0.0.0.0:*                           1068/named      
udp        0      0 111.90.150.92:53        0.0.0.0:*                           1068/named      
udp        0      0 127.0.0.1:53            0.0.0.0:*                           1068/named      
udp6       0      0 :::53

80端口上什么都没有,但我仍然无法重启

答案1

可能还有更多损坏,因为你还会得到

Unable to open logs

首先,启用更多日志记录

LogLevel debug

在你的/etc/apache2/apache2.conf

检查您的文件权限/var/log/apache2

我经常使用以下命令来调试:

strace -f apache2ctl start 2>&1|grep -v " ENOENT " | grep -Ee " E[A-Z]+"

它会准确地向您显示哪些呼叫失败了。

[编辑]

另一个原因可能会产生重叠的监听地址,例如:

Listen *:80
Listen 1.2.3.4:80

因此,您监听所有接口,并且第二条监听线尝试打开已打开的端口。如所述这里

答案2

您是否尝试以非 root 用户身份启动 apache?您可能没有权限将 Apache 绑定到低于 1024 的端口(通常只有 root 用户才可以这样做),并且日志文件归 apache:apache 以外的其他人所有,或者归 root 所有,这会阻止 Apache 打开它们。

检查 /etc/apache2/logs 是否归 apache2 用户所有,以及您是否以 root 身份启动服务(并确保 /etc/apache2/conf/apache2.conf(或 httpd.conf)中的用户和组指定为正确的用户)。

答案3

我的问题是

Listen 192.168.0.101:80

在站点配置中。

但电脑重启后,我的 IP 就变成了另一个 (192.168.0.102)。修复 IP 地址解决了问题。

相关内容