VirtualHost instellingen Apache2

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 VirtualHostop 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.

2 thoughts on “VirtualHost instellingen Apache2

  1. ik snap er niets van ik heb alles gevolgd in deze guide maar toch is mijn site niet te zien.. enkel op localhost kan ik mijn site zien en meer niet..
    vaag
    ik hoop dat iemand het me uit kan leggen..

  2. Vergeet ook het hekje # niet te verwijderen dat voor de vhost module staat in het httpd.conf bestand voordat je met vhost aan de gang gaat in httpd-vhosts.conf.
    @mike ws een gevalletje firewall, dus poort 80 forwarden in je router en poort 80 openzetten op je pc. Zorg ervoor dat je pc een vast ip (hoog) adres heeft bv 192.168.0.150 oid.

Comments are closed.