Debian / Ubuntu: Apache2 Change Default Port / IP Binding

by on November 14, 2008 · 12 comments· LAST UPDATED November 14, 2008

in , ,

Question: How do I change Apache 2 default port under Debian / Ubuntu Linux? I've couple of public IPv4 address assigned by my ISP, how do I force Apache2 to listen to a specific IP address? How do I change Apache2 IP address binding?

Answer: You can easily change the port and other settings using following directives:

Apache Listen Directive

The Listen directive instructs Apache to listen to more than one IP address or port; by default it responds to requests on all IP interfaces, but only on the port given by the Port directive. You can use this directive multiple times.

Task: Change Apache port

Open /etc/apache2/ports.conf file, enter:
# vi /etc/apache2/ports.conf
OR
$ sudo vi /etc/apache2/ports.conf
To make the server accept connections on both port 8010, enter:
Listen 8010
To make the server accept connections on both port 80 and port 8010, use:
Listen 80
Listen 8010

Task: Accept connections on specific IP / interface port

You need to use network interfaces IP address. For example, to make the server accept connections on IP 202.54.1.2 and port 80, enter:
Listen 202.54.1.2:80
To make the server accept connections on two specified interfaces and port numbers, enter:
Listen 202.54.2.1:80
Listen 202.54.2.5:8010

Save and close the file. Restart Apache 2 webserver:
# /etc/init.d/apache2 restart
OR
$ sudo /etc/init.d/apache2 restart

How do I verify port and IP binding working ?

Use netstat command to find out if Apache is listening on a specific port or not, use:
# netstat -tulpn
# netstat -tulpn | grep :80
# netstat -tulpn | grep :8010
# netstat -tulpn| grep 202.54.1.2:80

Sample output:

tcp        0      0 202.54.1.2:80            0.0.0.0:*               LISTEN     19306/apache2
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 12 comments… read them below or add one }

1 Felipe Ferreira November 25, 2008 at 6:16 pm

Great Post.
Simple and easy to understand.
But I was wondering how I could server multiple IPs,Ports.
How would the Virtual Hosts file look like?
Is it enough to change the
NameVirtualHost ?

cheers,
http://www.felipeferreira.net

Reply

2 Goncorpius October 23, 2010 at 11:46 am

Plz , i change port apache ia 81 but in address on browser my type is

localhst:81 or 127.0.0.1:81 not search foulder content php www

i edit port is 80 is ok

why ?? plz

Reply

3 Cesar December 2, 2010 at 3:38 pm

I’m with the same problem…

Reply

4 Khan Bhai March 16, 2012 at 3:39 pm

my Apache server was not running but when i close all my start up programs like skype and utorrent then it work and apache server running.
start up programs sometimes use the port of apache!

Reply

5 Melroy van den Ber December 13, 2010 at 11:26 pm

They apparently forgot to say to change the following also:

sudo nano /etc/apache2/ports.conf

In file ports.conf, line 8.
Find:
NameVirtualHost *:80

Change to:
NameVirtualHost *:8080

And!
sudo nano /etc/apache2/sites-available/default

In file default, line 1.
Find:

Change to:

Eventually restart your apache2 server ;)

sudo /etc/init.d/apache2 restart

Good luck!

Kind regards,
Melroy van den Berg

Reply

6 ulysses January 2, 2012 at 10:53 pm

oh thanks that helped alot

Reply

7 slavka April 18, 2013 at 9:51 pm

Using specific ip and port but getting:
===============
no listening sockets available, shutting down
Unable to open logs
Action ‘start’ failed.
The Apache error log may have more information.
failed!
==============

Reply

8 praveen July 4, 2011 at 9:38 am

what is the difference between the port 80 and 8080?

Reply

9 gauchoproluanco February 22, 2012 at 4:15 pm

Hi guys,

Like always, brilliant, simple and easy!!!

Thanks,

Luis

Reply

10 LG June 11, 2012 at 4:16 pm

Something important!!!!

If you just change the port or add more ports here, you will likely also
have to change the VirtualHost statement in
/etc/apache2/sites-enabled/000-default

Regards

Reply

11 Peyman August 13, 2012 at 7:31 am

Hi.
I get the following error:
(99)Cannot assign requested address: make_sock: could not bind to address **.***.**.***:80
what can I do?

Reply

12 Nisarg Pandya May 6, 2013 at 8:53 pm

Hi Guys,

Thank you very much for all the information and the comments.

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: