Q. How do I fix an error, while restarting Apache ~ Address already in use: make_sock: could not bind to port 80?
A. If you are running SELinux disable temporary for port 80.
Apache Address already in use: make_sock: could not bind to port 80 error and solution
First make sure port 80/443 is not used by any other service or application with netstat command:
# netstat -tulpn| grep :80
If port 80 is bind to httpd, kill all process:
# killall -9 httpd
Now start the httpd:
# /etc/init.d/httpd start
Also make sure you are root while starting the httpd.
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 28 comments… read them below or add one }
Sir,
I have already used above commands but still the problem persist. When i use netstat then no pid/program name displays associated with it as below output.
netstat -tulpn | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
Please help me in this situation what should i do.
thankyou.
vijay
you must sudo netstat or it won’t show you everything (sudo killall also)
Try to killall -9 php – this should solve your problem
The post has helped us a lot.
Is this step are applicable for Ubuntu 7.10? , if trying step no2 killall -9 httpd displaying no process kill however if trying to run step 3 its displying no such file or directory
Shortest solution to my problem. Thanks!
Thanks. Worked great !!
Thanks heaps, it solves my problem
But do you know why it causes it? Looks like the apache2 crashes then it didn’t shut down the connection to port 80?
Some linux builds are configured to include conf.d/ssl.conf which binds to the hosts IP at port 443. This will generate the same error mentioned here.
I resolved the problem by deleting the VirtualHost block in /etc/conf.d/ssl.conf and commenting out the Listen 443 directive.
One might run into this if they define their own instance with SSL enabled.
Stop iis server from windows service
(administrator tool -> services – > world wide web)
And Start Apache
Really? Really? Windows server? More like an oxymoron. Have fun playing as a “point ‘n’ click” admin wannabe, you little n00blet.
Ok. I had the same issue. I was running Apache2 so after running the:
sudo netstat -tulpn| grep :80
I saw that apache2 was listening to that port. I shut all apache2 services down by doing the following:
sudo killall -9 apache2
Then ran:
netstat -tulpn| grep :80
to see if there was anything left open. If no results, the process was killed.
Then start up your apache2 services using:
sudo /etc/init.d/apache2 start
This resolved my problems! Hope this helps others. What a freakin pain!!!!!
@Flyboy, thanks a lot, was helpful for me.
Saved me @$$, tanks!
Thanks for the comment to take out ssl :443. That’s what been stopping my restarting httpd.
Yes! Thanks for your post… you saved me :-)
it does’t help me…^(
And what if the system reboots? Than again port 80 is in use. So
# netstat -tulpn| grep :80
If port 80 is bind to httpd, kill all process:
# killall -9 httpd
Now start the httpd:
# /etc/init.d/httpd start
fixes the symtoms but it is not the solution.
Thank you so much, great post helpful
Thank you so much , This post solved my problem.
Thanks a lot, you saved my time :)
FIRST and foremost thing don’t keep more than 1 ssl config file in /etc/httpd/conf.d/ folder
Hi,
I am also having same problem. I have killed and restarted the httpd, afterwards tried to start my server but it didnt worked….
Now its working thankssss………….
Screwed up almost 100s of pages for the solution of this issue…Just a small command “Killall” gave me a way from dark light..thkx guys….
How can I know that my board MAC address is already in use or it’s free to use. That means How can I identify that someone else is using my Board’s Mac address or not ? Please post the command if it’s available.
Thanks in advance
If you are trying to bind to port 80, you may also want to try disabling selinux to see if that is an issue.
echo 0 > /selinux/config /selinux/config <-enable
The above tmp. sets that seeing and reboot clears it. To permanently set it to disabled
vi /etc/selinux/config
change
SELINUX=enforcing
to
SELINUX=disabled
Reboot or put in the temp change above until you can reboot.
Thanks, Ted Sheckler. What you mentioned is correct. There were two declarations of 443.