当我尝试启动 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 地址解决了问题。