[Koha] Koha and Apache NameVirtualHost confusion
Kevin O'Rourke
lists at caboose.org.uk
Mon Mar 5 22:00:07 NZDT 2007
As often happens, writing an email describing the problem has helped me
to find the solution. I'll reply to my question here for the benefit of
anyone who has the problem in future.
It's all related to how Apache resolves virtual hosts, they have a very
long document describing how it works at
http://httpd.apache.org/docs/2.0/vhosts/details.html
The tricky part is that your default server, which on Debian is probably
specified in /etc/apache2/sites-available/default is only the default if
NO virtual hosts were matched. If Apache finds a vhost/namevhost match
for the IP address that will override the _default_ namevhost even if
the name is not correct!
In my case, somebody tries to access mail.nti.gov.ng:
- the IP address is 216.118.254.115
- Apache looks that address up in its hash of vhost IP addresses and
finds it
- that IP address has one virtual host listed, opac.nti.gov.ng
- opac.nti.gov.ng doesn't match the requested URL but it's the default
FOR THAT IP ADDRESS (because it's the only vhost for that IP)
- Apache serves up opac.nti.gov.ng instead of what we really wanted
The _default_ vhost is only used if Apache receives a request for an IP
address that is not mentioned in any vhost/namevhosts.
To fix the problem I had to alter /etc/apache2/sites-available/default
so that the VirtualHost line is:
<VirtualHost _default_:80 mail.nti.gov.ng:80 mail.ntilan:80>
This means that for IP address 216.118.254.115 both opac.nti.gov.ng AND
mail.nti.gov.ng are listed. The entry for mail.nti.gov.ng will be read
first, in /etc/apache2/sites-enabled it's in 000-default which comes
before 010-koha, so it is the default.
I hope this helps somebody else as the way it works seems fairly
counter-intuitive to me. The horrible interactions between different
vhosts also makes Debian's efforts to keep config files separate a
little pointless.
Kevin
More information about the Koha
mailing list