afbeelding van demeesterroel

Drupal subsites (NIET mulitsite) op Xampp

Configuratie

Xampp installatie op ubuntu als ontwikkelingsomgeving.
xampp voor linux werd geinstalleerd (zie ook http://develoop.be/node/36)
onder /opt/lampp/htdocs/drupal-5.1 staat een drupal (5.1) geinstalleerd die dus via de browser kan bereikt worden op http://localhost/drupal-5.1. Deze gebruikt de mysql database drupal_5_1

Subsites

Subsites laten mappen op verschillende drupal installaties

ik wil eigenlijk bereiken dat
http://klant1 mapt op /opt/lampp/klant1
http://klant2 mapt op /opt/lampp/klant2
...

Verschillende hostnamen voor dezelfde machine

In ubuntu heb ik 127.0.0.1 laten mappen op meerdere hosts door /etc/hosts (onder windows is dat c:\windows\system32\etc\hosts denk ik) aan te passen. Daarin staat momenteel iets in de trend van


127.0.0.1 localhost
127.0.1.1 ubuntu
127.0.0.1 klant1
127.0.0.1 klant2

Deze wijziging is onmiddellijk actief, en ik kan nu dus surfen naar http//klant1/
Maar ik wordt dan door mijn xampp installatie onmiddellijk geredirect naar http://klant1/xampp

Virtual hosts onder xampp

Momenteel wordt http://klant1 dus gemapped op /opt/lampp/htdocs en dan geredirect naar http://klant1/xampp. we willen bereiken dat http://klant1 mapped op een andere directory. Vhosts is het antwoord!

In xampp voor linux moet je eerst virtual host definities enablen in /opt/lampp/etc/httpd.conf.
Zoek daar naar de sectie

# Virtual hosts
#Include etc/extra/httpd-vhosts.conf

En wijzig dit naar

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

Eens dat dit in orde is ga je de echte virtual hosts aanpassen in /opt/lampp/etc/extra/httpd-vhosts.conf

Ik heb alles wat er stond weggegooid en vervangen door

NameVirtualHost *:80

ServerName localhost
DocumentRoot /opt/lampp/htdocs


ServerName klant1
DocumentRoot /opt/lampp/htdocs/klant1


ServerName klant2
DocumentRoot /opt/lampp/htdocs/klant2

Resultaat.

  • Surfen naar http://localhost wordt dan geredirect naar http://localhost/xampp
  • Surfen naar http://klant1 gebruikt dan de drupal installatie die onder /opt/lampp/htdocs/klant1 staat
  • Surfen naar http://klant2 gebruikt dan de drupal installatie die onder /opt/lampp/htdocs/klant2 staat

Dat is exact hetgeen ik wou bereiken.

Nieuwe klant?

En nu nog een extra trucje om snel een nieuwe website op te zetten voor klant3.
Zorg ervoor dat onder /opt/lampp/htdocs/drupal-5.1 een drupal installatie staat en reeds geinstalleerd is gebruik makend van de database 'drupal_5_1'. (Je kan ook eventueel al wat extra modules installeren die je dikwijls gebruikt, vb. status_update ).

  1. Kopieer /opt/lampp/htdocs/drupal-5.1 naar /opt/lampp/htdocs/klant3
  2. Kopieer /opt/lampp/var/mysql/drupal_5_1 naar /opt/lampp/var/mysql/klant3
  3. Editeer /opt/lampp/htdocs/klant3/sites/default/settings.php en vervang
    door
  4. Voeg het lijntje 127.0.0.1 klant3 toe aan /etc/hosts
  5. Voeg de lijntjes


    ServerName klant3
    DocumentRoot /opt/lampp/htdocs/klant3


    toe aan /opt/lampp/etc/extra/httpd-vhosts.conf
  6. restart xampp : sudo /opt/lampp/lampp restart
  7. Surf naar http://klant3 et Voila.. Weeral een nieuwe klant gelukkig!

Volgende keer.. gaan we een stapje verder en laten we zien hoedat je voor 1 klant meerdere subsites kan opbouwen (vb. voor prod.klantX, qa.klantX en dev.klantX ofwel voor backend.klantY en www.klantY). Stay tuned !!

BTW, als dit artikel goedgekeurd wordt (of tenminste al gelezen) dan verhuis ik dat samen met http://drupal.be/node/340 naar het handboek

Auteur: 
demeesterroel
Door tomderks op 21 juni, 2007 - 22:06

Mijn configuratie ziet er iets anders uit

In eerste instantie kreeg ik het hierboven beschreven verhaal niet aan de praat en mijn xampp bleef maar de pagina http://klant/xampp weergeven in plaats van http://klant/index.html.

Uiteindelijk heb ik het hosts bestand als volgt aangepast.


127.0.0.1 localhost.net localhost
127.0.0.1 klant.net klant

en het blokje in httpd-vhosts.conf ziet er zo uit

ServerName klant.net
DocumentRoot /opt/lampp/htdocs/klant

Om onduidelijke redenen werkt het nu wel en krijg ik wel de juiste pagina te zien.
Tenminste... ik had de fout gemaakt om het index bestand niet van de juiste permisies te voorzien en apache gaf een 403 (forbidden) foutmelding. Met chown heb ik het bestand voorzien van de dezelfde user en groep als apache zelf.
En nu kijk ik dus naar de goede pagina als ik in mijn browser http://klant.net in typ.

Bookmark and Share

Drupal is een geregistreerd merk van Dries Buytaert. | Powered by Pantheon.

Drupal.be/Drupal.nl is de website van de Nederlandstalige Drupalgemeenschap.