Hulpartikel overzicht

Hulpartikel

Een Apache webserver installeren in Debian 9

In dit artikel leggen wij de installatie en initiële configuratie van een Apache web server (met httpd-tools, mod_ssl en PHP-FPM) in Debian 9 uit. 

Apache vormt samen met MariaDB en PHP de zogeheten LAMP-Stack (Linux Apache MySQL PHP) en wordt gebruikt voor het hosten van websites. Host je een dynamische website op je VPS (e.g. WordPress), dan heb je ook MariaDB (nodig (of een vergelijkbaar alternatief zoals MySQL).

In dit artikel behandelen wij de volgende onderdelen:

  • Apache installeren
  • Apache-poorten openen in je firewall
  • PHP installeren
  • Vhosts gebruiken

Daarnaast raden wij ook aan om een SFTP-server op te zetten, en de websites die je host te beveiligen met SSL.

  • Voer de stappen in dit artikel uit als root user, of gebruik sudo.
     
  • Wil je je Apache server meteen kunnen testen? Wijs dan voor je begint de DNS van een domein naar je VPS (i.e. via het root A- en AAAA-record).

Apache installeren

 

Stap 1

Verbind met je VPS via SSH of gebruik de VPS-console en update eerst je server:

apt -y update
apt -y upgrade

Herstart nu eerst je VPS en herhaal na de herstart bovenstaande commando's (tenzij je VPS al up-to-date was). Sommige package updates zijn pas beschikbaar na het updaten en herstarten van je VPS.


 

Stap 2

Installeer Apache (en de benodigde extra packages) met het commando:

apt -y install apache2

Apache start automatisch na de installatie en na een herstart van je server. Je hoeft de service dus niet te enablen en starten.


Apache-poorten openen in je firewall

 

Debian 9 komt standaard met UFW als firewall en out-of-the-box staan alle poorten daarin dicht. Je zet de http-(80) en https-(443) poorten open met de commando's:

ufw allow 80/tcp
ufw allow 443/tcp

 

Gebruik je de VPS-firewall? Open dan (ook) de HTTP- en HTTPS-poorten in je controlepaneel.

cp vps firewall http


 

Apache testen

Je kunt nu direct de werking van je web server testen door in een browser naar http://voorbeeld.nl te gaan, waarbij je voorbeeld.nl vervangt door je hostname (te controleren met het commando 'hostname'), of het IP-adres van je VPS. Je ziet dan de standaard test-pagina:

 


PHP installeren

 

Stap 1

Apache komt na de installatie niet met een recente PHP-versie. Wil je een dynamische PHP-website hosten (e.g. WordPress), dan raden wij om veiligheidsredenen aan de meest recente versie van PHP te installeren. Voeg hiervoor eerst de PHP 7.3 PPA repository toe met:

apt -y install lsb-release apt-transport-https ca-certificates 
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.3.list

Wij streven ernaar onze documentatie up-to-date te houden, maar als er wanneer je dit leest een nieuwere versie is, zoals 7.4, pas dan in de commando's in stap 1 en 2 het versienummer aan naar de meest actuele.


 

Stap 2

Update je VPS nogmaals zodat de nieuwe repository daadwerkelijk gebruikt kan worden en installeer vervolgens PHP7.3 met de meest relevante modules:

apt -y update
apt -y install php7.3 php7.3-cli php7.3-common php7.3-curl php7.3-mbstring php7.3-mysql php7.3-xml php7.3-fpm

Je PHP-versie is nu geüpgraded naar 7.3.5 (of nieuwer). Je controleert de preciese versie met:

php -v

 

Stap 3

Na de installatie zie je een melding zoals in het voorbeeld hieronder, waarin staat dat PHP-FPM nog niet is geactiveerd.

NOTICE: Not enabling PHP 7.3 FPM by default.
NOTICE: To enable PHP 7.3 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.3-fpm

Voer de laatste twee commando's hierboven uit om PHP-FPM te configureren en in te schakelen, oftewel:

a2enmod proxy_fcgi setenvif
a2enconf php7.3-fpm

 

Stap 4

Herlaad tot slot Apache:

systemctl reload apache2

Je Apache-server is nu helemaal klaar voor PHP. Vergeet niet MariaDB te installeren als er ook een database aan je website gekoppeld is en je VHost te configureren als je meerdere sites host.


Een VHost gebruiken

Wil je meer dan één domein hosten? Dan gebruik je een VHost-systeem (ook bekend als VirtualHost). Een VHost-file bevat o.a. de gegevens waar op je VPS specifieke domeinen gehost worden. Hierdoor worden bezoekers van domeinen die je op je VPS host automatisch naar de juiste mappen op je VPS gestuurd waar de websites zich bevinden (zonder dat die bezoekers daar iets van merken).

 

Stap 1

Maak de vhost file aan met het commando (vervang example.com door je domeinnaam):

nano /etc/apache2/sites-available/example.com.conf

 

Stap 2

Neem de inhoud hieronder over, waarbij je example.com vervangt door de naam van het domein dat je wil hosten op je VPS.

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/log/apache2/example.com/error.log
    CustomLog /var/log/apache2/example.com/access.log combined
</VirtualHost>


Stap 3

De directories die in de vorige stap staan bestaan nog niet en maak je samen met de log files eerst aan. Vervang hier example.com door de naam van het domein dat je toevoegt:

mkdir -p /var/www/example.com/public_html
mkdir -p /var/log/apache2/example.com
touch /var/log/apache2/example.com/error.log
touch /var/log/apache2/example.com/access.log

De toevoeging -p (-parent) maakt indien nodig alle mapstructuren aan die voor /example.com staan. In principe zouden deze allemaal al moeten bestaan.


 

Stap 4

Schakel de virtual host in met de commando's:

a2ensite example.com.conf
systemctl reload apache2

Extra domeinen

Herhaal stap 1 t/m 4 voor ieder extra domein dat je wil toevoegen (ongeacht het aantal).


 

Stap 5

Je kunt nu direct aan de slag met je website, door deze via SFTP of FTPS te uploaden, of door met een teksteditor vanuit command-line een html-website te maken (voor PHP, zie PHP installeren). Je kunt bijvoorbeeld als volgt een info.php pagina maken:

  • Open php.info:
    nano /var/www/example.com/public_html/info.php
  • Voeg de volgende inhoud toe:
    <?php
    phpinfo();
    ?>
    

Je kunt nu direct naar de pagina example.com/info.php navigeren in je browser om de output te testen.


 

Je Apache-server is nu klaar! Gebruikt je website een database? Neem dan ook een kijkje in onze MariaDB-handleiding. Voor het beveiligen van je website kun je onze Apache SSL-handleiding gebruiken.

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

Wil je dit artikel met andere gebruikers bespreken, laat dan vooral een bericht achter onder 'Reacties'.

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op