Meer websites op één server: Apache virtual hosts
.. door middel van “Name-based Virtual Hosts” op Apache 2 webserver (2.2 in dit geval).
Directories op de server die verband houden met de webserver:
- /etc/apache2 : de instellingen voor de webserver, met
/etc/apache2/httpd.conf
het (hoofd)configuratiebestand. Hierin kan een ander configuratiebestand geladen worden, bv met “include /etc/apache2/vhosts.d/vhosts.conf”. - /srv (alle) serverdiensten (incl ftp, webserver, etc)
- /srv/www de webserverdiensten, met subdirs:
/srv/www/cgi-bin/ uitvoerbare scripts
/srv/www/htdig/ voor zoekmachine op website
/srv/www/htdocs/ gewone webserver documenten
Standaard zijn documenten vanaf hier zichtbaar naar buiten.
Standaard hier staat ook index.html
, het eerste welkom-document (bv met de tekst “it works”).
Om virtuele hosts te gebruiken op “virtserver” in een intern/lokaal netwerk “.test.loc” zijn een paar stappen nodig:
- kies de nieuwe hostnamen, bv alfa.test.loc, beta.test.loc, gamma.test.loc.
- zet in de dns server verwijzingen naar het ip-adres waarop die virtuele sites zullen draaien. Bv voeg de lijnen toe in de dns-server (hier dns.test.loc) in het bestand /var/named/test.loc:
…
gateway IN A 192.168.1.1
laserprinter IN A 192.168.1.110
colorprinter IN A 192.168.1.120
…
virtserver IN A 192.168.1.200
…
dns IN CNAME gateway.test.local.
mail IN CNAME gateway.test.local.
webmail IN CNAME gateway.test.local.
..
alfa IN CNAME virtserver.test.local.
beta IN CNAME virtserver.test.local.
…
Let op het puntje aan het einde van de lijn bij alfa, beta..
Bewaar en herstart de serverdienst:/etc/init.d/named restart
(ofservice named restart
)
En test met ping alfa.test.local - in vhosts.conf maak je een paragraaf aan voor elke virtuele server, en/of maak een file per virtuele server:
- /etc/apache2/vhosts.d : hierin staat een template “vhost.template” die je kan kopiëren voor elke virtuele host, bv naar alfa.test.local.conf, beta.test.local.conf, ..: daarin de virtuele hosts – instellingen doen.
Enkele parameters moeten ingesteld worden in het configuratiebestand, hier onder het kopje < VirtualHost alfa.test.local:80 >ServerName alfa.test.local
Documentroot /srv/www/vhosts/alfa.test.local/htdocs
ErrorLog /var/log/apache2/alfa.test.local-error_log
CustomLog /var/log/apache2/alfa.test.local-access_log combined
ScriptAlias /cgi-bin/ “/srv/www/vhosts/alfa.test.local/cgi-bin/Dan onder < Directory "/srv/www/vhosts/alfa.test.local/cgi-bin" >
AllowOverride None
Options +ExecCGI -Include
Order allow,deny
Allow from allen sluit
< / Directory >
En dan de document directory
< Directory "/srv/www/vhosts/alfa.test.local/htdocs" >Options Indexes FollowSymLinks
AllowOverride Noneen sluit
< / Directory > - maak mappen aan in de vhosts directory voor elke virtuele webserver, bv :
/srv/www/vhosts/alfa.test.local/
krijgtcgi-bin
htdocs
– – > hierin komen de eigenlijke website bestanden.
- Zeg in /etc/apache2/listen.conf dat de server naar deze poort (80=standaard) moet luisteren:
Listen 80
NameVirtualHost *.80
Veel voorkomende problemen:
- Als je bij ping test “ping unknown host alfa.test.local” krijgt, moet je de dns instellingen checken of het dns systeem herstarten om de instellingen te doen lezen.
- Als je in de browser je virtuele site niet te zien krijgt (maar bv wel een “algemene” webserverpagina uit de /srv/www/htdocs dir) kan je:
– de webserver herstarten om zijn configuratiefiles te laten lezen:
/etc/init.d/apache2 restart
– de documentdirectory checken: bestaat htdocs, en is hij leesbaar door de webserver?
– is de configuratiefile in orde (vhosts.conf)?
Na elke wijziging de webserver herstarten.
Uitgebreid 13/9/2012