Ubuntu: Configuring Virtual Hosts to listen on different ports

Files to check
– /etc/apache2/ports.conf
– /etc/apache2/apache2.conf

Consider the ServerName to be “myserver”. Check /etc/hosts for an entry localhost myserver.com myserver

We will see an example where by we can change/add apache ports in order to have two sites hosted on different ports.


First, we need to edit ports.conf file to add two port numbers 8001, 8002

$ vi /etc/apache2/ports.conf

File Content

Listen 80
Listen 8001
Listen 8002

Listen 443

Now, ports.conf file is configured to listen on 80, 8001, 8002

Restart apache for the changes to take effect
$ /etc/init.d/apache2 restart

To check if Apache is listening on the correct port, netstat command comes in handy

$ netstat -tulpn
$ netstat -tulpn | grep :8002

Setup two site location in /var/www
$ mkdir /var/www/site1
$ cd /var/www/site1
$ echo “In site1” > index.html

$ mkdir /var/www/site2
$ cd /var/www/site2
$ echo “In site2” > index.html

Now, lets create myserver.conf file in /etc/apache2/sites-available with the content shown below

ServerName greenland
DocumentRoot /var/www/site1

ServerName greenland
DocumentRoot /var/www/site2

Create a symbolic link to enable the site in sites-enabled folder
$ cd /etc/apache2/sites-enabled
$ ln -s ../sites-available/myserver.conf myserver.conf

In Debian, a2ensite and a2dissite comes in handy to enable, disable sites

Again, restart apache for the changes to take effect
$ /etc/init.d/apache2 restart

In the browser, type
to see the two sites in action.


Written by kurinchilamp

Website: http://

Leave a Reply

Your email address will not be published. Required fields are marked *