启动Apache失败(无法绑定到地址0.0.0.0:80)

58

更新:已经修复,似乎是sites-enabled目录下的一个VirtualHost配置文件有误。

我的操作系统是Ubuntu 11.10。

当我运行启动apache2的命令时:

sudo /etc/init.d/apache2 start

我遇到了以下错误消息:

启动Web服务器apache2
apache2:无法可靠地确定服务器的完全限定域名,使用127.0.1.1作为ServerName (98)。地址已在使用中:make_sock:无法绑定地址0.0.0.0:80,没有可用的侦听套接字,关闭日志无法打开日志文件。启动"start"操作失败。

我运行这个命令以获取正在使用端口80的进程:

sudo netstat -ltnp | grep ':80'

它返回以下输出:

tcp6       0      0 :::80                   :::*                    LISTEN      1176/

要知道我运行了哪个进程,可以使用以下命令:

ps -wlp1176

返回的结果是:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
5 D    33  1176     1  0  80   0 -     0 exit   ?        00:00:00 apache2

但是如果我尝试终止该进程:

sudo kill -9 1176

如果我再次运行netstat命令,则会发现它并没有关闭,而且apache启动失败。

有任何建议吗?


2
那么pid 1176是什么? (ps -wlp1176) - geekosaur
5 D 33 1176 1 0 80 0 - 0 exit ? 00:00:00 apache2 - rfc1484
那么,这对你有什么直观的建议吗?提示:与你试图启动的内容进行比较。 - geekosaur
我觉得Apache已经在运行了,但它无法提供页面,也无法停止、启动或重新启动。 - rfc1484
1
我刚遇到了类似的情况。一个pid为1345的apache2进程占用了80端口,但是没有响应任何请求。使用kill 1345命令结束该进程后,我就可以启动新的apache2进程了。 - Mika
12个回答

0
我会做的就是简单地检查你的 /etc/apache2/sites-available/your-domain-name.com.conf 文件中是否设置了以下内容。
SSLEngine on 
SSLCertificateFile /your/path/to/your-domain.com.crt
SSLCertificateKeyFile /your/path/to/your-domain.com.key
SSLCACertificateFile /your/path/to/your-domain.com.ca-bundle

并且在您的.conf文件中没有任何错误的目录或其他不应该存在的内容。对我来说,这个方法很有效,因为重新启动和杀死进程都没有帮助。它无论如何都无法启动。


0

在 .conf 文件中,你只能将监听的端口号 PORTNUMBER 写在一个文件中,不要写在多个文件中。试试看 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接