I performed a reboot of my server running Apache 2 with SSL and found the sites were not loading when it came back up.
Once the server was backup I assumed Apache had already started but none of the web sites or pages were loading. I proceeded to restart Apache web service and got the following message:
* Starting web server apache2
(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
Action 'start' failed.
The Apache error log may have more information.
[fail]
It appears that if there’s a site configure with a password protected SSL key file the server hangs on start up prompting for the key. I’d assume it would’ve been clever enough to either know it was a system initiated startup or time out.
I’m currently running Apache 2 on Ubuntu 12.04 and there appears to be no fix for this.
A work around is to use a key without a password on it but then you lose the security element.
To get the web service up and running find the process id (PID) for Apache after the system has restarted:
sudo netstat -ltnp | grep ':80'
It will list all processes listening on a port with 80 in it. The results should look something similar to below:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3154/apache2
The PID is the number before /apache2 so in the example above it’s 3154.
Next kill the process:
sudo kill -9 3154
replacing 3154 with the relevant PID. Run the netstat command again to ensure there are no processes listing on port 80 anymore.
Restart Apache 2 service:
sudo service apache2 start
Just more inconviences added by having extra security.
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80