Vhosts opzetten
15 december 2011 1 reactie
In deze tutorial leer ik jullie op een vlotte manier het opzetten van een vhost maar ook met eigen URL voor de vhost. Eerst een situatieschets. Ik heb al mijn projecten onder een map staan (D:\Projects\EclipsePHP). Ik gebruik Eclipse PHP editor om mijn projecten te ontwikkelen (dit ter info). Ieder project heeft een naam en een map in mijn project map.
Project: gastenboek
Map: D:\Projects\EclipsePHP\Gastenboek
Nu als ik naar http://localhost surf, zal Apache mijn DocumentRoot nemen en kijken of daar een index.php staat. Omdat http://localhost/gastenboek te lastig is voor mij, maak ik per project ook een hostnaam aan.
Host: http://gastenboek
De software die ik gebruik is:
- Zend Server Community Edition
- Eclipse PDT (dit is niet nodig maar ik vermeld graag een goeie PHP editor)
Stap 1: hostnaam maken
Ga naar C:\Windows\System32\drivers\etc. Daar vind je een bestand hosts. Zorg dat je dit kan bewerken. Met Windows Vista/7 moet je hier even zelf toegang geven.
- Rechtsklik op hosts -> Eigenschappen
- Klik op tabblad Beveiliging
- Klik op de knop Bewerken
- Klik op de knop Toevoegen
- Type je gebruikersnaam in en op de knop Namen controleren en klik OK
- Vink Volledig beheer aan (dit is het makkelijkst).
Nu je het bestand kan bewerken, open het en voeg de onderstaande lijn toe aan het bestand.
127.0.0.1 gastenboek
Stap 2: vhost maken
In je Apache folder (bij mij is dit C:\Program Files (x86)\Zend\Apache2) vind je in de map conf/extra het bestand httpd-vhosts.conf. Zorg dat je dit bestand kan bewerken en open het. Er zal al één en ander instaan van voorbeeld code. Je mag die voorbeeld <Vhost> tags wegdoen als dit jou irriteert. Voor het gastenboek kleef je de volgende code erin. De uitleg staat eronder
<VirtualHost *:80>
DocumentRoot “D:\Projects\EclipsePHP\Gastenboek\public”
ServerName gastenboek
ErrorLog “logs/gastenboek-error.log”<Directory D:\Projects\EclipsePHP\Gastenboek\public>
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
- De documentroot zegt waar Apache moet kijken
- De servername is de naam van onze hostnaam
- De errorlog is handig om per vhost een log file te hebben
- De directory tag zorgt ervoor dat wij als bezoeker toegang hebben tot die map. Zonder die tag krijg je een HTTP 403 error
update voor nieuwere apache versies:
De allow from all, allowoverride all kan je vervangen door Require local.
http://stackoverflow.com/questions/8413042/client-denied-by-server-configuration
Stap 3: httpd-vhosts.conf
In je httpd.conf moet je nog enkel de httpd-vhosts.conf includen. In de httpd.conf staat die er al maar er staat een # voor. Dus die moet eventjes weggehaald worden.
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Finale
Ziezo, meer is er eigenlijk niet. Je kan altijd meer vinden op Apache website.
Om alles te testen moet je nu Apache herstarten en surfen naar http://gastenboek. Als alles goed is, kan je nu je project zien.