无法在 Ubuntu 12.10 上启动 Apache:没有可用的侦听套接字

mic*_*nko 9 apache2 12.10 sockets

我无法启动使用 apt-get 安装的 apache2。我在 2 个单独的 Ubuntu 12.10 安装上遇到了同样的错误,一个在我的台式机上,另一个在 VirtualBox 中运行:

michal@michaltest:~$ sudo service apache2 start
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
           [fail]
Run Code Online (Sandbox Code Playgroud)

lsof 说:

michal@michaltest:/var/log/apache2$ sudo lsof -i :80
COMMAND     PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ubuntu-ge  2074 michal   11u  IPv4  23978      0t0  TCP michaltest.local:47578->mulberry.canonical.com:http (CLOSE_WAIT)
firefox   25194 michal   71u  IPv4  42477      0t0  TCP michaltest.local:59793->69.59.197.29:http (ESTABLISHED)
firefox   25194 michal   76u  IPv4  41834      0t0  TCP michaltest.local:59698->69.59.197.29:http (ESTABLISHED)
gvfsd-htt 25320 michal   12u  IPv4  42568      0t0  TCP michaltest.local:56203->lb260.amst.cotendo.net:http (CLOSE_WAIT)
Run Code Online (Sandbox Code Playgroud)

netstat 说:

michal@michaltest:/var/log/apache2$ sudo netstat -lnp | grep '80'
unix  2      [ ACC ]     STREAM     LISTENING     8030     876/acpid           /var/run/acpid.socket
Run Code Online (Sandbox Code Playgroud)

/var/log/apache2/error.log:

[Thu Nov 08 11:13:30 2012] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Thu Nov 08 11:17:32 2012] [notice] caught SIGTERM, shutting down
Run Code Online (Sandbox Code Playgroud)

/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

编辑#1:

michal@michaltest:~$ sudo netstat -ano | grep '443'
tcp       54      0 10.0.2.15:58504         91.189.92.70:443        CLOSE_WAIT  off (0.00/0/0)
Run Code Online (Sandbox Code Playgroud)

小智 9

你只需要删除nginx(3个包)然后就是这样......

您的主要问题是没有可用的侦听套接字。您面临这个问题是因为另一个应用程序/服务在您的 Ubuntu 服务器上获取了端口 80

现在您需要杀死获取端口 80 的进程。您可以使用以下命令轻松找到:-

须藤 netstat -ltnp | grep ':80'

这将返回如下内容:-

tcp 0 0 127.0.0.1:80 0.0.0.0:* 听 1588/aolserver4-nsd

对于上述情况,进程号 1588获得了端口 80,您需要终止该进程 1588。

须藤杀-9 1588

现在您可以通过以下命令启动您的 apache 服务器

须藤 /etc/init.d/apache2 启动

  • 谢谢!这让我有点难受,因为它说“Apache 错误日志可能有更多信息”,但里面什么也没有,还有“无法打开日志”,但是没有信息哪个日志文件(apache 的?虚拟主机? )。原来 nodejs 仍在使用端口 80.. (3认同)

Vid*_*har 2

要解决“apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.1.1 作为 ServerName”错误,请在 apache2.conf 文件中指定以下内容

ServerName HOSTNAME_OF_THE_SERVER
Run Code Online (Sandbox Code Playgroud)

保存conf文件并重新启动apache服务器。

请发布输出sudo netstat -ano | grep '443'

另请确保,如果您将 apache 配置为侦听 443 / ssl 端口,则应在 apache Web 服务器上配置 ssl 证书。


mar*_*ere 1

你有没有看到:

Unable to open logs
Run Code Online (Sandbox Code Playgroud)

我想你可以检查 /var/log/apache2 的权限!