english English

Apache mod_vhost_alias snel nieuwe projecten opzetten

Tegenwoordig is een bedrijf zonder eigen server bijna ondenkbaar. Uiteraard heeft zo'n server onnoemelijk veel voordelen, denk aan backups, documentbeheer, versiebeheer, testruimte voor nieuwe ontwikkelingen, vpn, etc... maar vaak is de configuratie toch niet altijd optimaal. In deze blogpost zou ik het graag hebben over de configuratie van de server hebben om sneller met de ontwikkeling van nieuwe projecten te kunnen beginnen.

mod_vhost_alias

Snel een flexibele development omgeving opzetten

Bij Inventis gebruiken we zo veel mogelijk vrije technologie en handige tools zodat we meer tijd hebben om te doen waar we goed in zijn: webdesign en webdevelopment. Ik ga jullie nu een goed voorbeeld geven van een geval waarbij vrije software gebruikt kan worden om het development proces sneller te maken.

De Apache webserver

Sinds enkele maanden gebruiken we intern een dns server en de Apache mod_vhost_alias module. Op deze manier kunnen we makkelijk een onderscheid maken tussen gewone test projecten, lokale websites en echte projecten en kunnen we er bv. voor kiezen om de tests niet elke dag te backuppen maar bv. slechts eenmaal per week.

We hebben dus ook doelgericht mappen aangemaakt op onze webserver. Zo ziet onze document root er ongeveer uit:

/var/www/tmp/
/var/www/local/
/var/www/proj/

Even een voorbeeldje, mijn persoonlijke testomgeving op de server staat in /var/www/tmp/kim/html/ en het project 'Obelisk' voor een klant van ons zal bijvoorbeeld in /var/www/proj/obelisk/html/ staan. De /var/www/local/ folder gebruiken we bv. voor PhpMyAdmin en onze bugtracker.

Hoe?

We hebben nu wel een folderstructuur, maar hoe vertalen we dit naar een nieuwe website in de Apache webserver? Je kunt natuurlijk telkens de configuratie aanpassen als er een nieuw project goedgekeurd is of als iemand snel een testje wil doen, maar dat zou een te grote inspanning vragen. Om dit automatisch te laten lopen gebruiken we de niet zo bekende, maar o zo handige mod_vhost_alias. Deze Apache module laat toe om binnenkomende urls automatisch te koppelen aan een folder op de server. Als we zo bv. surfen naar http://kim.tmp/ zal door middel van de module automatisch gezocht worden naar /var/www/tmp/kim/html/. Bestaat deze folder niet is het enkel een kwestie van een map bijmaken en alles werkt. Uiteraard is dit veel sneller dan telkens de hele server configuratie aan te passen en de webservice te herstarten.

Technisch

Even een voorbeeldje van de configuratie; de volgende lijnen zorgen voor de tmp koppeling:
 


        ServerName tmp
        ServerAlias *.tmp

        UseCanonicalName Off
        VirtualDocumentRoot /var/www/vhosts/tmp/%1/html/
        
                AllowOverride All
        


De %1, %2, ... zijn wildcards op basis van de url. Als we "http://kim.tmp/" aanvragen is bv %0 de hele hostname (kim.tmp), %1 is 'kim' en %2 is dan 'tmp'. De rest van de configuratie voor de local en proj domeinen loopt gelijk met het voorbeeld hier. Uiteraard stel je dan best ook een dns server in die automatisch *.tmp, *.local en *.proj gaat koppelen aan je interne server, maar die configuratie is weer een heel ander verhaal.

Slot

Heb jij nog een betere manier van werken? Ken je nog een interessante module voor Apache die jou toelaat om snel een nieuw project op te zetten? Maak gerust gebruik van de comments!

RSS reacties feed

2 reacties tot nu toe

Thomas Timmers

Thomas Timmers zei 2 jaar geleden:

Hoewel ik in mijn bedrijfsomgeving niet bezig ben met PHP en PHP servers ...

lijkt me dit ook zeer handig voor intern/persoonlijk werk ...
bedankt voor de tip !!
Tom Schuermans

Tom Schuermans zei 2 jaar geleden:

Ik maak meestal gebruik van mod_alias om nieuwe projecten op te zetten.
Eerst de module even inladen in je httpd.conf en daarna deze regel toevoegen.
Alias /webpath /full/filesystem/path

Reageer op dit artikel

Toegelaten tags: <a href="" title=""> <code> <em> <strong>

RSS Feed

Bekijk alle tags

Laatste reacties

  • Fabio Maggio: @Tom Claus: bedankt!
  • Tom Claus: @Filip Bedankt voor de tip, CouchDB gaan we zeker even mee bekijken. @Fabio Deze...
  • Fabio Maggio: Is die presentatie van Masterizing PHP Data Structure ook nog ergens te bekijken?
  • Tom Hermans: Thx Tom, schone samenvatting en een massa interessante links, ideaal voor mensen die die dag...
  • Filip Stas: Als MongoDb je al boeit zeker ook eens kijken naar couchbase ook zeker de moeite!