In dit artikel gaat het over de setup van een VirtualHost
met de Apache2 webserver.
Een VirtualHost
is een domein naam -zeg maar een website- en je kunt er meerdere websites tegelijk mee hosten vanaf 1 computer.
Als voorbeeld domeinnaam gebruiken we cellie.homeip.net.
We gaan er van uit dat de Apache2 server al geconfigureerd is.
In het voorbeeld is gebruik gemaakt van Ubuntu -XBMC Live- met Apache2 later geinstalleerd, maar het zou moeten werken op de meeste Ubuntu versies.
De domeinnaam die we gaan configureren moet al resolven naar het ip adres van de server.
In het kort.
Als er geen VirtualHost
op de server aanwezig is zal de standaard website zich in /var/www
bevinden. Dat is de DocumentRoot
van de server. De website die we toevoegen word in een subdirectory van /var/www
geplaatst. Die subdirectory geven we dezelfde naam als de website.
Dat is in dit geval dus /var/www/cellie.homeip.net
.
In /etc/apache2/sites-available
staan de configuratie bestanden van de websites. Hier word dat het tekst bestand /etc/apache2/sites-available/cellie.homeip.net
.
Daarna word in /etc/apache2/sites-enabled
een link aangemaakt naar het configuratie bestand van de website. Dat kan handmatig of met het commando a2ensite
. Pas als dat gebeurd is kan Apache2 de VirtualHost
gebruiken.
In dit voorbeeld gebruiken we a2ensite
.om de site ‘aan’ te zetten.
Maak de directories.
Als eerste geven we de VirtualHost
een eigen directory met daarin de DocumentRoot
van de VirtualHost
.
De directories maken we aan in /var/www
, wat de standaard DocumentRoot
van de Apache2 server is.
cellie@XBMCLive:~$ sudo mkdir /var/www/cellie.homeip.net cellie@XBMCLive:~$ sudo mkdir /var/www/cellie.homeip.net/htdocs
Check /etc/apache2/ports.conf
Kijk dan of de optie NameVirtualHost
in /etc/apache2/ports.conf
aanwezig is en er geen commentaarteken #
voor staat.
#/etc/apache2/ports.conf ... NameVirtualHost *:80 Listen 80 ...
De VirtualHost
aanmaken.
Gebruik het bestand /etc/apache2/sites-available/default
als voorbeeld voor de VirtualHost
.
Verwijder het niet! Het bevat de instellingen van de standaard website.
Standaard wijst het naar /var/www
. Deze site word getoond als er een request voor Apache2 komt dat niet voor een geconfigureerde VirtualHost
is of als die is uitgeschakeld.
Maak nu het VirtualHost
bestand /etc/apache2/sites-available/cellie.homeip.net
aan.
Servername
is de naam van de website, en DocumentRoot
moet in dit voorbeeld naar /var/www/cellie.homeip.net/htdocs
wijzen.
#/etc/apache2/sites-available/cellie.homeip.net <VirtualHost *:80> Servername cellie.homeip.net DocumentRoot /var/www/cellie.homeip.net/htdocs ... <Directory /var/www/cellie.homeip.net/htdocs> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> <Directory /var/www/cellie.homeip.net/htdocs/geheim> AuthUserFile /home/cellie/.htpasswd AuthType Basic AuthName "Alleen toegang voor de baas." Require valid-user </Directory> ... </VirtualHost>
Hier is de directory /var/www/cellie.homeip.net/htdocs/geheim
met een wachtwoord beveiligd dat in /home/cellie/.htpasswd
is opgeslagen.
De VirtualHost
is nu geconfigureerd, maar nog niet beschikbaar voor Apache2.
De VirtualHost
aan Apache2 toevoegen.
Met het commando a2ensite
kun je nu de site aan Apache toevoegen.
Er word door a2ensite
een symlink in /etc/apache2/sites-enabled
aangemaakt naar een website in /etc/apache2/sites-available
.
Om de VirtualHost
cellie.homeip.net in te schakelen gebruiken we:
cellie@XBMCLive:~$ sudo a2ensite cellie.homeip.net Enabling site cellie.homeip.net. Run '/etc/init.d/apache2 reload' to activate new configuration!
Dan lezen we braaf de Apache2 configuratie opnieuw in met:
cellie@XBMCLive:~$ sudo /etc/init.d/apache2 reload
Nu is de site vanaf het internet met de domeinnaam cellie.homeip.net bereikbaar.
De VirtualHost
uit Apache2 verwijderen.
Het commando a2dissite
dient om de link weer te verwijderen.
De VirtualHost
is dan onbereikbaar en de standaard website die in /etc/apache2/sites-available/default
is gedefinieerd word getoond.
cellie@XBMCLive:~$ sudo a2dissite cellie.homeip.net Site cellie.homeip.net disabled. Run '/etc/init.d/apache2 reload' to activate new configuration!
Ook nu weer de Apache2 configuratie opnieuw inlezen!
De domeinnaam wijst daarna naar de default website. In dit geval /var/www
.
De VirtualHost
cellie.homeip.net is nu niet bereikbaar.
a2ensite
en a2dissite
kun je ook zonder domeinnaam aanroepen, dan worden de aanwezige domeinnamen getoond.