Inrichting rootserver (1): Apache 2 installatie


Op mijn nieuwe virtuele rootserver wil ik Apache gaan draaien als webserver, apache2 om precies te zijn.

De basis

Allereerst geven we de opdracht om het pakket apache2 te installeren

#apt-get install apache2
#apt-get install apache2-mpm-prefork

Ik kies voor mpm-prefork omdat deze het meest stabiele is, de mpm-worker is meer bedoeld voor echt drukke servers.

Vervolgens installeren we nog een paar modules voor ondersteuning voor php en cgi:

# apt-get install libapache2-mod-php4 php4-cli php4-common php4-cgi

Ondersteuning voor SSL

Allereerst moeten we twee extra pakketten installeren:

# apt-get install openssl ssl-cert

Vervolgens maken we voor de ssl-toegang een self-signed certificate:

apache2-ssl-certificate

En activeren we de module ssl:

a2enmod ssl

Vervolgens maken we een kopie van de default config voor ssl:

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Dan maken we een symlink om de ssl site beschikbaar te stellen:

# ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl

In het bestand /etc/apache2/ports.conf moeten we nu een regel toevoegen omdat ssl standaard op poort 443 luistert:

Listen 443

Het bestand /etc/apache2/sites-available/ssl vullen we met het volgende:

NameVirtualHost *:443


        ServerName mydomain.com

        DocumentRoot /var/www/https/
        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined

        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.pem

Nog een opmerking, nu gebruiken we een self-signed certificate, maar als je een echt officieel gekocht certificaat gebruikt dan dien je nog het volgende toe te voegen om het certificaat naar de browser te sturen:

SSLCACertificatePath /full/path/to/apache/conf/certs

Tot slot herstarten we apache2:

/etc/init.d/apache2 restart

En daarmee hebben we een werkende apache2 webserver met ondersteuning voor php4 en ssl. Volgende stap is de installatie van Mysql.


Leave a Reply

Your email address will not be published. Required fields are marked *