Apache2 configureren/opzetten (in Dutch)
Ik beheer mijn eigen DNS en mijn eigen mail/web server op de computer die ik thuis heb staan; gewoon om te blijven leren hoe zulke zaken in elkaar steken. Ik zal hier vertellen hoe ik een site op heb gezet.
Tis wel ontzettend lang geleden sinds ik dit allemaal opgezet heb, dus ik hoop dat ik het nog juist vertel.
voorbereiding⌗
Dit verhaal gaat er vanuit dat je een domein hebt geregistreerd en dat
er een A (address) record met de naam ‘www’ bestaan. Dit address
record heeft het IP adres van jouw host. Ik zal het hier over het
domein miek.nl
hebben. Ik ga verder niet in op de details die je
moet regelen omdat voor elkaar te krijgen.
Als het allemaal goed werkt kun je een ping www.miek.nl
geven en zien
dat je antwoord krijgt.
webserver installeren⌗
Dit gaat gewoon via het mechanisme van de desbetreffende distributie.
Bij mij dus: apt-get install apache2
configureren⌗
Nu moet er eea aan instellingen goed gezet worden; onder Debian/Ubuntu
heb je nu ongeveer de volgende layout in /etc/apache2
:
apache2.conf
httpd.conf
ports.conf
mods-enabled/
sites-available/
sites-enabled/
conf.d/
mods-available/
ssl/
Onder debian beheer je de apache modules met de commandos a2enmod
en
a2dismod
. Ik zal hier niet verder ingaan op de apache modules. Dat is
een verhaal op zich.
Het aan- of uitzetten van een website gaat met a2ensite
en a2dissite
respectievelijk.
/etc/apache2/apache2.conf⌗
De laatste 2 regels van deze file luiden als volgt:
NameVirtualHost *:80
Include /etc/apache2/sites-enabled
Met het eerste statement geef ik aan dat ik websites heb draaien op port 80 op alle interfaces van mijn machine.
Het laatste statement verteld apache waar de website definities gevonden kunnen worden.
Maar goed - nu moet er dus nog eerst een site worden geconfigureerd. Dit doe je
door de configuratie dus in sites-available
te zetten.
/etc/apache2/sites-available/ In deze directory heb ik een file genaamd ‘miek.nl’ staan, hierin wordt aan apache vertelt hoe die website geconfigureerd is:
1 <VirtualHost *:80>
2 ServerAdmin hostmaster@miek.nl
3 ServerName www.miek.nl
4 ServerAlias miek.nl
5 ServerAlias a.miek.nl
6 ServerAlias gieben.com
7 ServerAlias a.gieben.com
8 ServerAlias 80.127.17.126
9 ServerAlias 192.168.1.2
10 ServerSignature Off
11 DocumentRoot /home/miekg/miek.nl
12 LogLevel warn
13 ErrorLog /var/log/apache2/miek.nl-error.log
14 CustomLog /var/log/apache2/miek.nl-access.log combined
15 </VirtualHost>
- Start een nieuwe
virtualhost
op port 80 (de http poort) - Wie is de admin?
- Wat is de officiele hostnaam voor deze server:
www.miek.nl
- Een alias
- Nog een
- Idem
- Idem
- Idem, maar dan een IP nummer (weet niet of dit per se nodig is).
- Idem
- Geef geen extra informatie over de apache server (versie nummers enzo)
- Waar kun je de site op het filesystem vinden? Hier dus
/home/miekg/miek.nl
. - Hoeveel logging wil je hebben
- En waar moet die logging heen
- Idem
- Einde virtual host block
a2ensite
Nu kun je met a2ensite miek.nl
voor deze file een symlink creeeren
vanuit /etc/apache2/site-enabled
naar /etc/apache2/site-available
.
Daar moet je apache restarten en zou eea moeten gaan werken:
/etc/init.d/apache2 restart
Permissies⌗
De apache server op Debian/Ubuntu draait als user www-data
, deze user
moet wel recht hebben om de files in /home/miekg/miek.nl
te kunnen
lezen!
Ik kan nu dus een /home/miekg/miek.nl/index2.html
file aanmaken met de
juiste permissies:
touch /home/miekg/miek.nl/index2.html
chmod 644 /home/miekg/miek.nl/index2.html
NB: ook alle tussenliggende directories moeten bewandelbaar zijn voor de ‘www-data’ user, anders krijg je een ‘permission denied’.
Nu moet je dus je browser naar miek.nl/index2.html
kunnen wijzen
en moet je een mooi, wit scherm krijgen. Heb je dit dan kun je daarna
verder gaan met het ontwikkelen van een website.
Heb je dit niet dan kun je in /var/log/apache2/miek.nl-error.log
zien
of er fout-meldingen zijn verschijnen. Eventueel kun je ook
/var/log/apache2/error.log
bekijken.