Apache: bestanden serveren buiten de DocumentRoot

Standaard geef je een DocumentRoot aan en wordt de opgevraagde url opgehaald uit die directory. Dat betekent wanneer de DocumentRoot /srv/www/ is, wordt de url http://www.example.com/folder/bestand.ext opgehaald uit /srv/www/folder/bestand.ext

In sommige gevallen is het denkbaar dat er ook bestanden uit een andere map dan de DocumentRoot geserveerd moet worden. Denk hierbij bijvoorbeeld aan applicaties als PHPMyAdmin.

Continue reading Apache: bestanden serveren buiten de DocumentRoot

Virtualhost(s) instellen in Apache

Met virtualhosts is het mogelijk om meerdere websites op een enkele webserver te draaien. De vele shared hosting aanbieders maken dan ook graag gebruik van deze virtualhosts. Er maken dan meerdere klanten gebruik van één fysieke server, waardoor de kosten beperkt blijven. Voor kleine en gemiddelde websites is dat een prima oplossing.

Echter geldt vaak wel: hoe goedkoper de host, hoe groter de kans is dat er (erg) veel hosts op een server zitten. Aangezien de resources (cpu en geheugen) dan gedeeld worden, is de hoeveelheid van hosts op een server niet alleen bepalend voor de prijs, maar ook voor de performance.

Apache ondersteund een onbeperkt aantal virtualhosts, echter indien deze allemaal een eigen log file hebben, treed er bij een aantal boven de 64 een probleem op met de File Descriptor Limits. Deze is gelukkig te omzeilen met behulp van deze Apache guide.

Aangezien ik de omgeving van een site op de devserver zo gelijk mogelijk wil houden, heb ik deze ingesteld als virtualhost. Hoe dat moet is hieronder te lezen.

Continue reading Virtualhost(s) instellen in Apache

Apache Aliassen

Een alias is een verwijzing naar bijvoorbeeld een map buiten de www root.

Zo is het verstandig om phpmyadmin niet in de www root (veelal: /var/www) te zetten maar in een aparte directory (bijvoorbeeld: /var/wwwapps).

Het toevoegen van een Alias i.c.m. Apache is gelukkig vrij eenvoudig. De Alias regels kunnen in apache2.conf gezet worden, echter om de configuratie overzichtelijk te houden heb ik hier een aparte config file voor gemaakt in de conf.d directory van apache:

/etc/apache2/conf.d/aliasses

In dit bestand zijn vervolgens de Alias regels gezet:

Alias /phpmyadmin /var/wwwapps/phpmyadmin

Aangezien de gehele conf.d directory al wordt geinclude in apache2.conf, hoef je deze config file verder niet apart te includen en heb je alle aliasses bij elkaar.