Unable to start Apache on Ubuntu 12.10: no listening sockets available

I'm unable to start apache2 installed using apt-get. I'm getting the very same error on 2 separate Ubuntu 12.10 installations, one on my desktop PC, the other one running in 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]

lsof says:

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)

netstat says:

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

/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

/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

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

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

Thanks for your help.

EDIT #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)

you just need to remove nginx (3 packages) then that's it.....

Your primary issue is no listening sockets available.You are facing this issue because another application/service acquired port 80 on your Ubuntu Server.

Now you need to Kill the process which acquired port 80. You can find that easily with following command :-

sudo netstat -ltnp | grep ':80'

This will return something like :-

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

for above case Process number 1588 acquired port 80 , you need to kill that process 1588.

sudo kill -9 1588

Now you can start your apache server by following command

sudo /etc/init.d/apache2 start


To resolve "apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName" error, kindly specify following in your apache2.conf file

ServerName HOSTNAME_OF_THE_SERVER

Save conf file and restart apache server.

Kindly post the output of sudo netstat -ano | grep '443'

Also ensure that if you are configuring apache to listen on 443 / ssl port you should have configured ssl certificate on apache webserver.