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
ik wil eigenlijk bereiken dat
http://klant1 mapt op /opt/lampp/klant1
http://klant2 mapt op /opt/lampp/klant2
...
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 klant2Deze 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
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# Virtual hosts
Include etc/extra/httpd-vhosts.confEens 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
<VirtualHost *:80>
ServerName localhost
DocumentRoot /opt/lampp/htdocs
</VirtualHost>
<VirtualHost *:80>
ServerName klant1
DocumentRoot /opt/lampp/htdocs/klant1
</VirtualHost>
<VirtualHost *:80>
ServerName klant2
DocumentRoot /opt/lampp/htdocs/klant2
</VirtualHost>Resultaat.
/opt/lampp/htdocs/klant1 staat
/opt/lampp/htdocs/klant2 staat
Dat is exact hetgeen ik wou bereiken.
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 ).
/opt/lampp/htdocs/drupal-5.1 naar /opt/lampp/htdocs/klant3
/opt/lampp/var/mysql/drupal_5_1 naar /opt/lampp/var/mysql/klant3
/opt/lampp/htdocs/klant3/sites/default/settings.php en vervang<?php
$db_url = 'mysql://root:@localhost/drupal_5_1';
?><?php
$db_url = 'mysql://root:@localhost/klant3';
?>127.0.0.1 klant3 toe aan /etc/hosts
<VirtualHost *:80>
ServerName klant3
DocumentRoot /opt/lampp/htdocs/klant3
</VirtualHost>/opt/lampp/etc/extra/httpd-vhosts.conf
sudo /opt/lampp/lampp restart
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
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
<VirtualHost *:80>ServerName klant.net
DocumentRoot /opt/lampp/htdocs/klant
</VirtualHost>
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.