Ga naar inhoud

🌐 Het apache2 Commando in Linux

In deze handleiding leer je hoe je apache2 gebruikt op een Linux-systeem.

Het commando apache2 (of de service apache2) wordt gebruikt om de Apache HTTP Server te beheren, één van de meest gebruikte webservers op Linux-systemen.
Het is essentieel voor het hosten van websites, webapplicaties en testen van webservices lokaal.

Achtergrondinformatie

Apache is een open-source webserver die HTTP(S)-verkeer kan verwerken en dynamische of statische webpagina’s kan serveren.

  • Apache ondersteunt modules voor extra functionaliteit zoals SSL, PHP, en URL-rewriting.
  • Het wordt vaak gebruikt in combinatie met MySQL/MariaDB en PHP (LAMP-stack).
  • apache2 kan worden beheerd via systeemservices (systemctl) of via command-line parameters voor debugging en configuratie.

Controleren of apache2 aanwezig is

Controleer of Apache geΓ―nstalleerd is:

apache2 -v
Voorbeeldoutput
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2022-03-15T13:35:25

βš™οΈ Installeren van apache2

Apache is beschikbaar via de standaard pakketmanager.

Installatie op Debian/Ubuntu:

sudo apt update
sudo apt install apache2

Voorbeeldoutput
apache2 is already the newest version (2.4.52-1ubuntu2).

Hieronder vind je enkele veelgebruikte voorbeelden van apache2 of de service:

  • systemctl start apache2 β†’ Start de webserver
  • systemctl stop apache2 β†’ Stop de webserver
  • systemctl restart apache2 β†’ Herstart de webserver
  • systemctl status apache2 β†’ Controleer status van de webserver
  • apache2ctl configtest β†’ Controleer configuratie op fouten
Voorbeeld

systemctl status apache2
Output:
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2025-09-11 08:00:01 UTC; 5min ago

  • apache2ctl -M β†’ Toon ingeschakelde modules
  • apache2ctl -S β†’ Toon virtual hosts en configuratie
  • apache2ctl -k graceful β†’ Herstart server zonder actieve verbindingen te verbreken
  • apache2ctl -t β†’ Test configuratie op syntaxfouten

De belangrijkste configuratiebestanden voor Apache zijn:

  • /etc/apache2/apache2.conf β†’ Hoofdconfiguratie
  • /etc/apache2/sites-available/ β†’ Beschikbare virtual hosts
  • /etc/apache2/sites-enabled/ β†’ Ingeschakelde virtual hosts
  • /etc/apache2/mods-available/ en /etc/apache2/mods-enabled/ β†’ Modules

Virtual Host Voorbeeld

Een Virtual Host (vhost) maakt het mogelijk om meerdere websites op één server te hosten.
Enkele belangrijke punten:

  • Locatie: VHost-configuraties staan in /etc/apache2/sites-available/.
  • Bestandsnaam: Gebruik een duidelijke naam, bijvoorbeeld example.com.conf.
  • Enable/Disable: Activeer een site met a2ensite en deactiveer met a2dissite.
  • DocumentRoot: Dit is de map waar de websitebestanden staan, bijv. /var/www/example.com/public_html.
  • Logs: Apache kan per site aparte logbestanden bijhouden (ErrorLog, CustomLog).
  • Herstarten: Na wijzigen van een vhost moet Apache opnieuw geladen of herstart worden (systemctl reload apache2).

Tip

Zorg dat de map van de DocumentRoot bestaat en de juiste permissies heeft:

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

Uitleg bij de velden: - ServerAdmin β†’ E-mailadres van de beheerder
- ServerName β†’ Hoofd-domeinnaam van de site
- ServerAlias β†’ Eventuele alternatieve domeinnamen (bijv. www)
- DocumentRoot β†’ Map met de websitebestanden
- ErrorLog β†’ Locatie voor foutmeldingen
- CustomLog β†’ Locatie voor toegang logs

Activeer de vhost zodat Apache deze gaat gebruiken:

sudo a2ensite example.com.conf
sudo systemctl reload apache2

Uitleg: - a2ensite β†’ maakt een symlink van sites-available naar sites-enabled
- systemctl reload apache2 β†’ laadt de configuratie opnieuw zonder actieve verbindingen te verbreken

Wil je een site tijdelijk uitschakelen:

sudo a2dissite example.com.conf
sudo systemctl reload apache2

Apache logt standaard naar:

  • /var/log/apache2/access.log β†’ Verzoeken naar de webserver
  • /var/log/apache2/error.log β†’ Fouten en waarschuwingen
tail -f /var/log/apache2/error.log

Updaten van apache2

Update Apache via de pakketmanager:

sudo apt update
sudo apt install --only-upgrade apache2

Verwijderen van apache2

Verwijder Apache indien nodig:

sudo apt remove apache2

Optioneel verwijder ook configuratiebestanden:

sudo apt purge apache2

πŸ“– Handleiding

De ingebouwde handleiding is beschikbaar via:

man apache2
Voorbeeld
APACHE2(8)                 Apache HTTP Server                  APACHE2(8)

NAME
       apache2 - Apache HTTP Server

SYNOPSIS
       apache2 [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"]