Simon Simon - 3 months ago 27
Apache Configuration Question

VirtualHost always returns default host with Apache on Ubuntu 14.04

I try to setup a virtual host besides the default

localhost
.
Whenever I try to call my virtual host
http://test
I get the default Apache2 Index file that sits in the directory of
http://localhost
. Furthermore apache returns this page still after disabling (
a2dissite
) both VirtualHost files an reloading apache (
service apache2 reload
).

What could go wrong that the virtual host is not working?

Configuration:

My directory structure is the following:

/var/www/html # Default localhost dir
/var/www/html7index.html # Apache2 default index

/var/www/test # HTML dir for the virtual host
/var/www/test/index.html # My "website"


Content of
/etc/hosts
:

127.0.0.1 localhost
127.0.1.1 Laptop
127.0.0.1 test


Directory content of
/etc/apache2/sites-available
:

000-default.conf
default-ssl.conf
test.conf


File
000-default.conf
:

<VirtualHost localhost:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


File
test.conf
:

<VirtualHost test:80>
ServerAdmin test@localhost
ServerName test
NameVirtualHost test
ServerAlias test
DocumentRoot /var/www/test
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Answer

Looks like the behaviour of service apache2 reload fooled me. See the following log:

user@Laptop:/etc/apache2/sites-available$ sudo a2ensite test.conf 
Enabling site test.
To activate the new configuration, you need to run:
  service apache2 reload
user@Laptop:/etc/apache2/sites-available$ service apache2 reload
 * Reloading web server apache2                                                  * 
user@Laptop:/etc/apache2/sites-available$

Try to reach http://test: NOT working

user@Laptop:/etc/apache2/sites-available$ sudo service apache2 reload
 * Reloading web server apache2                                                  * 
user@Laptop:/etc/apache2/sites-available$

Try to reach http://test: WORKING

So, find the difference! The point is that I thought it would've reloaded correctly in the first place. There are no entries in the log files either. Calling it with sudo helped. Is this a bug?