Apache on localhost: give virtual hosts specific servers name
I ask my question first and below are details of what I have so far trying to solve the thing:
On Apache running on localhost, I want to have different virtual hosts that would be accessible through url: http://name-of-the-virtual-host.name-of-the-machine/
Details:
So I have Apache running on port 8080 of my laptop. Linux Mint, so Debian distro. Everything is in local for testing purposes, so no DNS involved! The IP address I use is 127.0.1.1 which has the domain of my computer, called fabjoa. On the file /etc/apache2/apache2.conf
, I've put:
ServerName fabjoa
In the file /etc/hosts
, there is indeed the line
127.0.1.1 fabjoa
In the file /etc/apache2/ports.conf
NameVirtualHost *:8080
Listen 8080
Now, the conf file of my virtual host. The file is called is goyahkla and is located on /etc/apache2/sites-available/
and has a symbolic link in /etc/apache2/sites-enabled
. On this file, I have the following:
<VirtualHost *:8080>
ServerName goyakhla.fabjoa
ServerAdmin webmaster@localhost
DocumentRoot /var/sites/goyahkla
....
<Directory /var/sites/goyahkla/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
...
</VirtualHost>
Running apache2ctl configtest
gives me Syntax OK. Now, on browser, opening http://fabjoa:8080/
does point to the Virtual Host goyahkla (beacause that's the only one I have), but http://goyahkla.fabjoa:8080
is not found. Other debugging:
telnet goyahkla.fabjoa:8080
telnet: could not resolve goyahkla.fabjoa:8080/telnet: Name or service not known
lynx goyahkla.fabjoa:8080
Looking up 'goyahkla.fabjoa' first
Looking up 'www.goyahkla.fabjoa.com', guessing...
Looking up goyahkla.fabjoa first
Looking up www.goyahkla.fabjoa.com, guessing...
Looking up www.goyahkla.fabjoa.com:8080
Making HTTP connection to www.goyahkla.fabjoa.com:8080
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://www.goyahkla.fabjoa.com:8080/
Any idea on how purpose could be achieved?
I have to create new entries in /etc/hosts
for each virtual host.
For example, I've added the following line:
127.0.2.1 goyahkla
Which allows me to access it through
http://goyahkla/
What you're looking for is a 127.0.1.1 *.fabjoa
style syntax in your hosts file. Unfortunately, the hosts file doesn't support this. You'd have to use DNS for that or enter each one individually like you mentioned above.