In some cases the (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 error could be caused by multiple Listen directives attempting to bond to the same port (port 80 in this case). We’ll take a look at the configuration files to verify whether or not this may be the case.
For both Ubuntu 12.04 LTS and Ubuntu 14.04 LTS search the following configuration file:
grep Listen /etc/apache2/ports.conf
which for my search resulted in:
Listen 80
Listen 81
Listen 80
Listen 443
Listen 443
It looks like there are two Listen directives for port 80 and port 443, but we’re only concerned about port 80, per the error we received (0.0.0.0:80). Edit the file, and correct the duplicate Listen directive.
vim /etc/apache2/ports.conf
Option #2: Another Process is Already Using Port 80
Evaluate which process(es) may be using port 80 with the following:
Use:
fuser -n tcp 80
in combination with:
ps aux | grep PID
(with PID equal to the ports listed with the fuser command) to evaluate which process is associated with the PIDs using port 80.
Or, use the following one-liner:
ss -plnt sport eq :80
Then, kill of the offending process(es).