端口 80 已关闭,Apache 不会重新启动

端口 80 已关闭,Apache 不会重新启动

我尝试重新启动 Apache 2.2.14(也在 Ubuntu 10.04 上使用 PHP 5.3.2,以 root 身份运行所有命令)。它关闭了,但不会重新启动。这是一个全新的 VPS,没有防火墙或 IP 表。当我运行 时apache2ctl start,我收到以下响应:

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

apache2ctl status产生这个:

Looking up localhost
Making HTTP connection to localhost
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost/server-status
'www-browser -dump http://localhost:80/server-status' failed.
Maybe you need to install a package providing www-browser or you
need to adjust the APACHE_LYNX variable in /etc/apache2/envvars

lsof | grep http不返回任何内容

netstat -plant

Active Internet connections (servers and established)
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      1139/mysqld     
tcp        0      0 209.40.198.146:53       0.0.0.0:*               LISTEN      1153/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1153/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1125/sshd       
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      1153/named      
tcp        0    240 209.40.198.146:22       66.214.136.198:37853    ESTABLISHED 1280/0          
tcp6       0      0 :::53                   :::*                    LISTEN      1153/named      
tcp6       0      0 :::22                   :::*                    LISTEN      1125/sshd       
tcp6       0      0 ::1:953                 :::*                    LISTEN      1153/named   

我最多是个 Linux 新手,但我看到的所有其他东西都要求提供这些报告。没有任何东西阻止端口 80,但 Apache 却无法绑定到它。问题出在 Apache 上吗?我设置了虚拟主机,但它们非常简单,我以前也使用过相同的配置。如果需要,我可以发布 .conf 文件。

apache2ctl -t:语法正确

service apache2 start

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

答案1

假设您以 root 身份运行 apache(service apache start比手动更好apachectl),因为用户无法绑定特权端口,请检查您是否没有语法错误:

apachechtl -t

然后检查你的NameServer指令配置和解析机制。

确保您NameServer myhost.example.com所引用的地址可以解析(检查 /etc/hosts 或您的 DNS 缓存)。

答案2

如果您Listen 80在配置中多次指定(或其他端口),就会发生这种情况。每次出现时,Apache 都会尝试绑定指定的端口。第二次出现时,Apache 将无法绑定端口,因为实际上该地址已被使用。请仔细检查配置并删除重复的Listen指令。

相关内容