Inloggen
Inloggen

VNC installeren op Ubuntu

VNC installeren op Ubuntu
Hostman Team
Technisch schrijver
Ubuntu-systeem Serveerders
10.07.2025
Reading time: 7 min

Als je grafisch met een externe server wilt werken, kun je VNC-technologie gebruiken.

VNC (Virtual Network Computing) stelt gebruikers in staat om op afstand verbinding te maken met een server via het netwerk. Het werkt met een client-server-architectuur en gebruikt het RFB-protocol om schermbeelden en invoergegevens (toetsenbord en muis) over te dragen. VNC ondersteunt verschillende besturingssystemen, waaronder Ubuntu, Windows, macOS en anderen. Een bijkomend voordeel is dat meerdere gebruikers tegelijkertijd verbinding kunnen maken, wat handig is voor samenwerking of training.

In deze gids leggen we uit hoe je VNC installeert op Ubuntu met als voorbeeld een Hostman-cloudserver met Ubuntu 22.04.

Stap 1: Voorbereiding op installatie

Voordat je begint met de installatie op zowel de server als de lokale machine, zijn er een paar vereisten die je moet doornemen. Hier is een overzicht van wat je nodig hebt om de installatie te voltooien:

  1. Een server met Ubuntu 22.04. In deze gids gebruiken we een Hostman-cloudserver met een minimale hardwareconfiguratie.

Image3

  1. Een gebruiker met sudo-rechten. De installatie moet worden uitgevoerd door een gewone gebruiker met beheerdersrechten.
  2. Een grafische desktopomgeving naar keuze. Je moet een desktopomgeving kiezen waarmee je na de installatie met de server op afstand kunt werken.

  3. Een computer met een VNC-client geïnstalleerd.

Momenteel kun je alleen via de console met een Ubuntu 22.04-server werken. Voor een grafische interface op afstand moet je zowel een desktopomgeving als een VNC-server installeren. Hier zijn enkele opties.

VNC-servers:

  • TightVNC Server. Een van de populairste keuzes voor Ubuntu. Eenvoudig te configureren en snel.

  • RealVNC Server. Een commerciële oplossing voor toegang tot Linux-servers, waaronder Ubuntu, Debian, Fedora, Arch Linux en meer.

Desktopomgevingen:

  • Xfce. Lichtgewicht en snel. Ideaal voor VNC-sessies. Verbruikt minder bronnen dan zwaardere omgevingen. Perfect voor servers en virtuele machines.

  • GNOME. De standaard desktopomgeving van Ubuntu, met een moderne en gebruiksvriendelijke interface. Werkt met VNC, maar verbruikt meer bronnen dan Xfce.

  • KDE Plasma. Een populaire omgeving met veel functies en een mooie interface.

De keuze hangt af van je behoeften en beschikbare bronnen. TightVNC en Xfce zijn uitstekende opties voor stabiele sessies met een laag verbruik. In de volgende stap leggen we uit hoe je deze installeert.

Stap 2: Desktopomgeving en VNC-server installeren

Log in op je server met een gebruiker die sudo-rechten heeft.

  1. Werk de pakketlijst bij

Na het inloggen voer je dit commando uit om de lijst met pakketten uit de verbonden repositories bij te werken.

sudo apt update
  1. Installeer de desktopomgeving

sudo apt install xfce4 xfce4-goodies

Het eerste pakket bevat de basisomgeving van Xfce. Het tweede voegt optionele toepassingen en plugins toe.

  1. Installeer TightVNC Server

sudo apt install tightvncserver
  1. Start de VNC-server

vncserver

Dit commando start een nieuwe VNC-sessie met een specifiek sessienummer zoals :1 (voor poort 5901), :2 (voor poort 5902), enzovoort. Elk sessienummer komt overeen met een displaypoort. Hierdoor kunnen meerdere VNC-sessies tegelijkertijd draaien op dezelfde machine.

Tijdens de eerste keer opstarten zal het systeem je vragen om een wachtwoord in te stellen. Dit wachtwoord is nodig om verbinding te maken met de grafische gebruikersinterface van de server.

Image6

  1. View-only wachtwoord instellen (optioneel)

Na het instellen van het hoofdwachtwoord kun je ervoor kiezen een view-only wachtwoord in te stellen. Dit is handig voor demonstraties of situaties waarin je anderen alleen leesrechten wilt geven zonder controle over de sessie.

Wachtwoorden aanpassen kan later met:

vncpasswd

Je hebt nu een actieve VNC-sessie. 

Image4

In de volgende stap configureren we VNC om automatisch de juiste desktopomgeving te starten.

Stap 3: VNC configureren

  1. Stop actieve sessies

vncserver -kill :1

Image1

In dit voorbeeld stoppen we sessie :1, die overeenkomt met poort 5901.

  1. Maak een back-up van het configuratiebestand

Het is goed om een back-up te maken voordat je wijzigingen aanbrengt.

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
  1. Bewerk het configuratiebestand

nano ~/.vnc/xstartup

Vervang de inhoud met het volgende:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
    • #!/bin/bash: deze regel (de "shebang") geeft aan dat het script wordt uitgevoerd met de Bash-shell.
    • xrdb $HOME/.Xresources: laadt gebruikersinstellingen zoals kleuren, lettertypen en muiscursorinstellingen.
    • startxfce4 &: start de Xfce-desktopomgeving op de server.
  1. Maak het configuratiebestand uitvoerbaar

chmod +x ~/.vnc/xstartup
  1. Start VNC met localhost-beperking

vncserver -localhost

De optie -localhost beperkt de toegang tot de server zelf. Je kunt nog steeds verbinden vanaf je lokale computer via een SSH-tunnel. Deze verbindingen worden als lokaal beschouwd door de VNC-server.

De VNC-configuratie is nu voltooid.

Stap 4: VNC-client installeren en verbinden

We installeren een VNC-client op Windows 11.

Populaire VNC-clients:

  • RealVNC Viewer. De officiële client van RealVNC, compatibel met Windows, macOS en Linux.
  • TightVNC Viewer. Een gratis en eenvoudige VNC-client voor Windows en Linux.
  • UltraVNC. Nog een gratis VNC-client voor Windows met geavanceerde functies voor beheer op afstand.

Voor deze handleiding gebruiken we de gratis TightVNC Viewer.

  1. TightVNC Viewer downloaden en installeren

Bezoek de officiële TightVNC-website, download het installatieprogramma en voer het uit.

Image5

Klik op "Next" en accepteer de licentieovereenkomst.

Kies de aangepaste installatiemodus en schakel de installatie van de VNC-servercomponent uit.

Image2

Klik tweemaal op "Next" en voltooi de installatie van de VNC-client op je lokale computer.

  1. Een SSH-tunnel instellen voor een beveiligde verbinding

Om je verbinding met de VNC-server te versleutelen, gebruik je SSH om een beveiligde tunnel op te zetten. Open PowerShell op je Windows 11-computer en voer het volgende commando uit:

ssh -L 56789:localhost:5901 -C -N -l gebruikersnaam server_ip_adres

Zorg ervoor dat OpenSSH op je lokale machine is geïnstalleerd. Raadpleeg zo nodig de documentatie van Microsoft om dit te installeren.

Dit commando stelt een SSH-tunnel in die je verbinding van je lokale computer naar de externe server omleidt via een beveiligd kanaal. Hierdoor denkt de VNC-server dat de verbinding van de server zelf komt.

Toelichting op de gebruikte opties:

    • -L configureert SSH-port forwarding door poort 56789 van de lokale computer door te sturen naar poort 5901 op de server. Deze poort is gekozen omdat ze niet bezet is door andere diensten.
    • -C schakelt compressie in, waardoor gegevens sneller over SSH worden verzonden.
    • -N geeft aan dat er na het tot stand brengen van de verbinding geen verdere commando’s worden uitgevoerd.
    • -l geeft de gebruikersnaam op waarmee je verbinding maakt met de server.
  1. Verbinding maken met TightVNC Viewer

Na het maken van de SSH-tunnel open je TightVNC Viewer en voer je in het veld voor de verbinding het volgende in:

localhost:56789

Je wordt gevraagd het wachtwoord in te voeren dat je tijdens de initiële configuratie van de VNC-server hebt ingesteld.

Na het invoeren van het wachtwoord wordt je verbonden met de VNC-server en verschijnt de Xfce-desktopomgeving.

  1. De SSH-tunnel sluiten

Ga terug naar PowerShell of de opdrachtregel op je lokale machine en druk op CTRL+C om de tunnel te sluiten.

Conclusie

In deze gids heb je stap voor stap geleerd hoe je VNC installeert op Ubuntu 22.04. We gebruikten TightVNC Server als de VNC-server, TightVNC Viewer als client en Xfce als desktopomgeving voor de interactie met de server.

We hopen dat VNC-technologie het beheer van je server eenvoudiger en efficiënter maakt.

Heb je problemen met het opzetten van een Ubuntu-server? Bekijk dan onze gedetailleerde instructie op Hostman.

Ubuntu-systeem Serveerders
10.07.2025
Reading time: 7 min

Vergelijkbaar

Ubuntu-systeem

Een BIND DNS-server opzetten

Een BIND DNS-server opzetten DNS (Domain Name System) is een systeem waarin alle domeinnamen van servers in een specifieke hiërarchie zijn georganiseerd. Waarom hebben we dit nodig? Stel je voor dat je verbinding moet maken met een apparaat met het IP-adres 91.206.179.207. Je kunt dit adres in de opdrachtregel invoeren om de benodigde informatie te krijgen, maar veel van zulke numerieke combinaties onthouden is erg lastig. Daarom zijn er speciale servers gemaakt die domeinnamen omzetten naar IP-adressen. Wanneer je bijvoorbeeld hostman.com in de zoekbalk van je browser invoert, worden de aanvraaggegevens naar een DNS-server gestuurd. Die zoekt in zijn database naar overeenkomsten, stuurt het juiste IP-adres terug naar je apparaat en pas daarna kan de browser de resource rechtstreeks benaderen. Je eigen DNS configureren maakt een flexibelere en nauwkeurigere systeemconfiguratie mogelijk en voorkomt afhankelijkheid van derden. In dit artikel bekijken we hoe je DNS opzet met de BIND-nameserver op Ubuntu. Begrippen Zone: Een deel van de DNS-hiërarchie dat op een DNS-server wordt gehost. Het bepaalt de grenzen waarbinnen een specifieke server of groep servers verantwoordelijk is. Rootservers: DNS-servers met informatie over top-level domains (.ru, .com, enz.). Domein: Een benoemd deel van de DNS-hiërarchie, een specifieke node die andere nodes kan bevatten. DNS-adressen worden van rechts naar links gelezen en beginnen met een punt, waarbij domeinen ook door punten gescheiden zijn. Bijvoorbeeld: het domein poddomen.domen.ru moet worden gelezen als .ru.domen.poddomen. Meestal weerspiegelt de domeinnaam de DNS-hiërarchie, maar de laatste punt wordt weggelaten. FQDN (Fully Qualified Domain Name): Een volledige domeinnaam inclusief alle bovenliggende domeinen. Resource record: Een opslageenheid van informatie, in feite een record dat een naam koppelt aan service-informatie. Het bestaat uit: Naam (NAME): De naam of het IP-adres dat eigenaar is van de zone Time to Live (TTL): Hoelang een record in de DNS-cache blijft voordat het wordt verwijderd Class (CLASS): Netwerktype, meestal IN (Internet) Type (TYPE): Het doel van het record Data (DATA): Aanvullende details Veelvoorkomende resource records A-record: Koppelt een hostnaam aan een IPv4-adres. Elke netwerkinterface kan maar één A-record hebben. website.com.              520    IN     A      91.206.179.207 AAAA-record: Hetzelfde als een A-record, maar voor IPv6. CNAME: Canonical name record, een alias voor een echte naam (doorverwijzing). MX: Specificeert mailhosts voor het domein. Het NAME-veld bevat het bestemmingsdomein, het DATA-veld de prioriteit en host voor het ontvangen van mail. website.com.             17790   IN      MX      10 mx.website.com. website.com.             17790   IN      MX      20 mx2.website.com. NS: Verwijst naar de DNS-server die het domein bedient. PTR: Koppelt een IP-adres aan een domeinnaam (reverse lookup). SOA: Beschrijft de belangrijkste zone-instellingen. SRV: Bevat adressen van servers die interne domeindiensten leveren, zoals Jabber. Vereisten Om de instructies in dit artikel te volgen, heb je minstens twee Ubuntu-servers nodig in hetzelfde datacenter. Je kunt deze servers bij Hostman bestellen. We hebben twee Ubuntu 20.04-servers nodig: een primaire en een secundaire DNS-server, respectievelijk ns1 en ns2. Daarnaast zijn er extra servers die onze geconfigureerde DNS-servers gebruiken. Je moet op elke server superuserrechten hebben. BIND installeren op DNS-servers We gebruiken bind9 als DNS-server. Installeer het bind9-pakket uit de Linux-repository: sudo apt update && sudo apt upgrade -y sudo apt install bind9 Daarnaast is het aan te raden netwerktools te installeren: sudo apt install dnsutils Start daarna de bind9-service: sudo service bind9 start Het hoofdconfiguratiebestand van de server is /etc/bind/named.conf. Het beschrijft algemene instellingen en wordt meestal opgesplitst in meerdere bestanden. named.conf.options Dit bestand bevat de algemene serverparameters: options {         dnssec-validation auto;         auth-nxdomain no;         directory "/var/cache/bind";         recursion no; # recursieve queries naar de nameserver uitschakelen         listen-on {                      172.16.0.0/16;                       127.0.0.0/8;             };         forwarders {              172.16.0.1;             8.8.8.8;           }; }; Controleer of alles correct is ingevoerd met named-checkconf: sudo named-checkconf Als alles klopt, kan de bind-server starten. Primaire DNS-server De primaire DNS-server bewaart de hoofdkopie van het zonebestand. Alle zones komen in de map /etc/bind/master-zones. Maak die aan: sudo mkdir /etc/bind/master-zones Maak een bestand aan voor de zone: sudo touch /etc/bind/master-zones/test.example.com.local.zone Voeg SOA-, NS- en A-records toe: $ttl 3600  $ORIGIN test.example.com.  test.example.com.               IN              SOA  (       ns.test.example.com.     abuse.test.example.com.                                   2022041201                                  10800                                  1200                                  604800                                  3600   )  @                               IN              NS              ns.test.example.com.  @                               IN              NS              ns2.test.example.com.   @                               IN              A                172.16.101.3  ns                              IN               A                172.16.0.5  ns2                             IN              A                172.16.0.6 Controleer met named-checkzone: sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone named.conf.local Dit is een extra bestand dat in de hoofdconfiguratie wordt ingeladen. Hier definiëren we lokale zones: zone "test.example.com." {                 type master;                 file "/etc/bind/master-zones/test.example.com.local.zone"; }; Controleer de configuratie en herstart bind9 (de -z vlag controleert zonebestanden): sudo named-checkconf sudo named-checkconf -z sudo service bind9 restart sudo service bind9 status Views instellen Views maken het mogelijk om naamresolutie flexibel te beheren voor verschillende subnets. Zet dit in /etc/bind/named.conf: include "/etc/bind/named.conf.options"; acl "local" { 172.16.0.0/16; }; view "local" {                 include "/etc/bind/named.conf.local";                 match-clients { local; }; }; Herstart daarna bind9: sudo service bind9 restart Na de herstart kun je vanaf een andere computer in het lokale netwerk de SOA-record opvragen van server 172.16.0.5: dig @172.16.0.5 -t SOA test.example.com De primaire DNS-server is nu klaar. De volgende secties behandelen de secundaire server, mailserver-instellingen en reverse zones. Secundaire server De eerste stappen zijn hetzelfde: bind9 en dnsutils installeren en starten. Maak vervolgens de map /etc/bind/slave voor zonebestanden en geef de juiste permissies: sudo mkdir /etc/bind/slave sudo chmod g+w /etc/bind/slave Voeg de zone toe in /etc/bind/named.conf.local: zone "test.example.com." {         type slave;         file "/etc/bind/slave/test.example.com.local.zone";         masters { 172.16.0.5; }; }; Views in named.conf: include "/etc/bind/named.conf.options"; acl "local" { 172.16.0.0/16; }; view "local" {         match-clients { local; };         include "/etc/bind/named.conf.local"; }; Controleer en herstart: sudo named-checkconf sudo named-checkconf -z sudo service bind9 restart Zone transfer uitvoeren: sudo rndc retransfer test.example.com rndc retransfer forceert een zone transfer zonder serial-check. Belangrijk: verhoog de serial number altijd wanneer je het zonebestand wijzigt (bij voorkeur datum + increment). Beperk daarna zone transfers op de primaire server met allow-transfer in de zoneconfig (named.conf): zone "test.example.com." {     type master;     allow-transfer { 172.168.0.6; };     file "/etc/bind/master-zones/test.example.com.local.zone"; }; Herstart: sudo service bind9 restart Vanaf hier voer je verdere wijzigingen uit op de primaire server. Een MX-record toevoegen We gebruiken in dit voorbeeld mx als hostnaam. De FQDN wordt mx.test.example.com. Voeg MX-records toe aan /etc/bind/master-zones/test.example.com.local.zone: @   IN  MX  10 mx.test.example.com. @   IN  MX  20 mx2.test.example.com. Werk de serial number in het SOA-record bij: $TTL 3600 @   IN  SOA ns.test.example.com. admin.test.example.com. (         2024071101  ; Serial number         10800       ; Refresh         1200        ; Retry         604800      ; Expire         3600        ; Minimum TTL ) Controleer de zonefile: sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone Herlaad BIND: sudo service bind9 reload Reverse DNS instellen Reverse DNS zet IP-adressen om naar domeinnamen. Voorbeeld: 192.168.1.10 wordt 10.1.168.192.in-addr.arpa. Maak een reverse zonefile: sudo nano /etc/bind/master-zones/16.172.in-addr.arpa.zone Voeg data toe: $TTL    3600  16.172.in-addr.arpa.            IN      SOA  (  ns.test.example.com.  admin.test.example.com.                                  2022041202                                  10800                                  1200                                  604800                                  3600  )                                 IN      NS            ns.test.example.com.                                  IN      NS           ns2.test.example.com.    3.101.16.172.in-addr.arpa.      IN      PTR              test.example.com.  5.0.16.172.in-addr.arpa.        IN      PTR           ns.test.example.com.  6.0.16.172.in-addr.arpa.        IN      PTR          ns2.test.example.com.  2.101.16.172.in-addr.arpa.      IN      PTR         mail.test.example.com. Controleer: sudo named-checkzone 16.172.in-addr.arpa /etc/bind/master-zones/16.172.in-addr.arpa.zone Voeg in named.conf.local toe: zone "16.172.in-addr.arpa." {                 type master;                 file "/etc/bind/master-zones/16.172.in-addr.arpa.zone";                 allow-transfer { 172.16.0.6; };         }; Herstart: sudo named-checkconf sudo named-checkconf -z sudo service bind9 restart Test met dig: dig @172.16.0.5 -x 172.16.0.5 Op de secundaire server voeg je in named.conf.local toe: zone "16.172.in-addr.arpa." {      type slave;      file "/etc/bind/slave/16.172.in-addr.arpa.zone";      masters { 172.16.0.5; };  }; Externe domeinzone Om queries van buitenaf te verwerken, voeg je het externe IP toe aan listen-on in named.conf.options: listen-on {     aaa.bbb.ccc.ddd/32; # ons externe IP     172.16.0.0;     127.0.0.0/8 } Maak de zonefile aan (serial number aanpassen!): sudo nano /etc/bind/master-zones/test.example.com.zone Inhoud: $TTL 3600 $ORIGIN test.example.com. test.example.com. IN SOA  (          ns.test.example.com.     admin.test.example.com.                                 2022041205                                 10800                                 1200                                 604800                                 3600   ) @ IN NS ns.test.example.com. @ IN NS ns2.test.example.com. @ IN A aaa.bbb.ccc.ddd ns IN A aaa.bbb.ccc.ddd ns2  IN A eee.fff.ggg.hhh Maak een apart bestand voor externe view zones: sudo nano /etc/bind/named.conf.external zone "test.example.com." {      type master;      file "/etc/bind/master-zones/test.example.com.zone";     allow-transfer { 172.16.0.6; }; }; Voeg in named.conf toe: acl "external-view" { aaa.bbb.ccc.ddd; }; view "external-view" {     recursion no;     match-clients { external-view; };     include "/etc/bind/named.conf.external"; }; Controleer en herstart: sudo named-checkconf -z sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.zone sudo service bind9 restart sudo service bind9 status Op de secundaire server zet je in named.conf.options het externe adres bij listen-on, maak je een named.conf.external aan met slave-zone en voer je transfer uit: sudo rndc retransfer test.example.com IN external-view Debugging Bij DNS-setup is logging erg belangrijk. BIND9 kan uitgebreide logging-configuraties aan. Maak log.conf: sudo nano /etc/bind/log.conf Inhoud: logging {     channel bind.log {         file "/var/lib/bind/bind.log" versions 10 size 20m;         severity debug;         print-category yes;         print-severity yes;         print-time yes;     };     category queries { bind.log; };     category default { bind.log; };     category config { bind.log; }; }; Include in hoofdconfig: include "/etc/bind/log.conf"; Herstart: sudo service bind9 restart Conclusie In deze gids hebben we DNS geconfigureerd op een Ubuntu-server met het bind9-pakket. Na het volgen van de stappen kunnen de twee DNS-servers worden gebruikt voor naamresolutie in het netwerk. Om de custom DNS-servers te gebruiken, configureer je je andere servers om 172.16.0.5 en 172.16.0.6 als DNS-servers te gebruiken. Deze setup kan dienen als basis voor verdere uitbreidingen, zoals het opzetten van een mailserver.
17 February 2026 · 16 min to read
Docker-platform

Docker Compose installeren op Ubuntu: complete handleiding

Docker Compose heeft de manier waarop ontwikkelaars containerized applicaties benaderen fundamenteel veranderd, vooral wanneer meerdere onderling afhankelijke services moeten worden gecoördineerd. Deze tool vervangt handmatig containerbeheer door een gestructureerde, YAML-gestuurde workflow, waarmee teams volledige applicatie-architecturen in één configuratiebestand kunnen definiëren. Voor Ubuntu-omgevingen betekent dit reproduceerbare deployments, eenvoudiger schalen en minder operationele overhead. Deze handleiding biedt een frisse kijk op de installatie en het gebruik van Docker Compose en geeft diepere inzichten in de praktische implementatie. Vereisten Voordat je met deze tutorial begint, moet het volgende zijn geregeld: Implementeer een Ubuntu cloud server-instance bij Hostman. Zorg dat je een gebruikersaccount hebt met sudo-rechten of root-toegang, zodat je pakketten kunt installeren en Docker kunt beheren. Docker moet geïnstalleerd zijn en actief draaien op de server, aangezien Docker Compose bovenop de Docker Engine werkt. Waarom Docker Compose belangrijk is Moderne applicaties bestaan vaak uit meerdere onderling verbonden componenten, zoals API’s, databases en caching-lagen. Het afzonderlijk beheren van deze onderdelen met Docker-commando’s wordt al snel omslachtig naarmate de complexiteit toeneemt. Docker Compose lost dit op door alle services, netwerken en opslagvereisten te declareren in één docker-compose.yml-bestand. Deze aanpak zorgt voor consistentie tussen omgevingen—of je nu lokaal op een Ubuntu-machine werkt of op een cloudserver. Neem bijvoorbeeld een webapplicatie met een Node.js-backend, een PostgreSQL-database en een Redis-cache. Zonder Docker Compose vereist elk onderdeel een aparte docker run-opdracht met nauwkeurige netwerkparameters. Met Compose worden deze relaties één keer vastgelegd, waardoor je de applicatie met één enkele opdracht kunt starten en stoppen. Docker Compose installeren Volg deze stappen om Docker Compose op je Ubuntu-systeem te installeren. Stap 1: Controleren of Docker is geïnstalleerd en actief is Docker Compose functioneert als een uitbreiding van Docker, dus controleer eerst de status: sudo systemctl status docker Als de service niet actief is, start deze met: sudo systemctl start docker Stap 2: Systeempakketten bijwerken Werk de pakketlijsten bij om toegang te krijgen tot de nieuwste softwareversies: sudo apt-get update Stap 3: Basis-hulpprogramma’s installeren Voor veilige communicatie met de Docker-repositories zijn deze pakketten vereist: sudo apt-get install ca-certificates curl Stap 4: Docker GPG-sleutel configureren Authenticeer Docker-pakketten door de cryptografische sleutel toe te voegen: sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Deze stap zorgt ervoor dat pakketten tijdens het transport niet zijn gewijzigd. Stap 5: Docker-repository toevoegen Voeg het Docker-repository toe dat past bij jouw Ubuntu-versie: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Het commando detecteert automatisch de juiste Ubuntu-versie via VERSION_CODENAME. Stap 6: Docker Compose-plugin installeren Werk de repositories bij en installeer de Compose-extensie: sudo apt update sudo apt-get install docker-compose-plugin Stap 7: Installatie verifiëren Controleer of Docker Compose correct is geïnstalleerd: docker compose version Voorbeeldoutput: Docker Compose version v2.33.0 Een praktisch Docker Compose-project opzetten We implementeren een eenvoudige webserver met Nginx om de mogelijkheden van Docker Compose te demonstreren. 1. Projectmap initialiseren Maak een aparte werkmap aan: mkdir ~/compose-demo && cd ~/compose-demo 2. Services definiëren in docker-compose.yml Maak het configuratiebestand aan: nano docker-compose.yml Voeg de volgende inhoud toe: services:   web:     image: nginx:alpine     ports:       - "8080:80"     volumes:       - ./app:/usr/share/nginx/html Uitleg: services: Hoofdelement waarin containers worden gedefinieerd web: Aangepaste servicenaam image: Alpine-gebaseerde Nginx-image met een kleine footprint ports: Koppelt hostpoort 8080 aan containerpoort 80 volumes: Synchroniseert de lokale app-map met de webroot van de container 3. Webinhoud aanmaken Maak de HTML-structuur: mkdir app nano app/index.html Voeg deze HTML toe: <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>Docker Compose Test</title> </head> <body>   <h1>Hello from Docker Compose!</h1> </body> </html> Containers orkestreren: van start tot afsluiten 1. Services starten in de achtergrond docker compose up -d Docker Compose downloadt automatisch de Nginx-image indien nodig en configureert het netwerk. 2. Containerstatus controleren docker compose ps -a 3. Webapplicatie openen Ga lokaal naar http://localhost:8080 of op een externe server naar http://<SERVER_IP>:8080. De testpagina zou zichtbaar moeten zijn. 4. Problemen analyseren via logs Bij problemen kun je de logs bekijken: docker compose logs web 5. Netjes stoppen en opruimen Containers tijdelijk stoppen: docker compose stop Alle projectresources verwijderen: docker compose down Commandoreferentie: meer dan de basis Deze commando’s breiden het containerbeheer verder uit: docker compose up --build – Images opnieuw bouwen vóór het starten docker compose pause – Containers pauzeren zonder ze te beëindigen docker compose top – Actieve processen in containers tonen docker compose config – De samengestelde configuratie valideren en bekijken docker compose exec – Commando’s uitvoeren in actieve containers(bijv. docker compose exec web nginx -t om de Nginx-configuratie te testen) Conclusie Docker Compose maakt van multi-container-orkestratie een gestroomlijnd en herhaalbaar proces in plaats van een handmatige en foutgevoelige taak. Door Docker Compose te installeren, services in YAML te definiëren en de essentiële commando’s te gebruiken, kun je complexe applicaties met vertrouwen beheren.
14 January 2026 · 6 min to read
PHP-scripttaal

Hoe PHP en PHP-FPM te installeren op Ubuntu 24.04

In deze handleiding leggen we uit hoe je PHP en PHP-FPM installeert op Ubuntu 24.04. PHP, wat staat voor Hypertext Preprocessor, is een veelgebruikte open-source programmeertaal die vooral wordt ingezet voor webontwikkeling. PHP-FPM is de aanbevolen FastCGI-implementatie voor PHP, bijzonder geschikt voor websites met veel verkeer. Aan het einde van deze gids draait PHP correct op je server. Bekijk eerst onze instructies over het opzetten van een server met Ubuntu. Vereisten Zorg ervoor dat je beschikt over: Ubuntu 24.04 LTS geïnstalleerd op de server Een gebruikersaccount met sudo-rechten Basiskennis van het werken met de command-line Een stabiele internetverbinding om pakketten te downloaden Werk het systeem bij met de volgende commando's: sudo apt updatesudo apt upgrade Apache installeren Installeer de Apache-webserver: sudo apt install apache2 PHP installeren Begin met het installeren van PHP op Ubuntu 24.04. Open een terminal en voer uit: sudo apt install php Dit installeert de basis PHP-pakketten, inclusief de command-line interface en standaardbibliotheken. Controleer de installatie: php -v PHP-extensies installeren Extensies breiden PHP uit met extra functionaliteit. Installeer populaire extensies met: sudo apt install php-curl php-mbstring php-xml Korte uitleg: php-mysql: verbinding met MySQL-databases php-gd: afbeeldingsmanipulatie php-curl: communicatie met andere servers php-mbstring: ondersteuning voor multibyte strings php-xml: ondersteuning voor XML php-zip: ondersteuning voor ZIP-bestanden Voor extra extensies zoek je met: apt-cache search php- PHP-FPM installeren en configureren PHP-FPM is essentieel voor websites met veel verkeer. Volg deze stappen om het te installeren en configureren: Installeer het pakket: sudo apt install php-fpm Start de PHP-FPM-service. De versienummers kunnen variëren afhankelijk van je installatie: sudo systemctl start php8.3-fpm Zorg dat PHP-FPM automatisch start bij het opstarten: sudo systemctl enable php8.3-fpm Controleer of PHP-FPM actief is: systemctl status php8.3-fpm Als alles goed werkt, zie je in de uitvoer de status "Active (running)". PHP en PHP-FPM testen Om zeker te zijn dat PHP en PHP-FPM correct werken, maak je een testbestand aan en laat je dit serveren via de webserver. In dit voorbeeld gebruiken we Apache: Genereer een PHP-info bestand. Om PHP-instellingen weer te geven via de functie phpinfo(), voer je het volgende uit: mkdir -p /var/www/htmlecho "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php Stel Apache in voor PHP-FPM. Zorg dat Apache compatibel is met PHP-FPM door het configuratiebestand aan te passen (meestal: /etc/apache2/sites-available/000-default.conf) en voeg het volgende toe: <FilesMatch \.php$>   SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/"</FilesMatch> Let op: pas de PHP-versie en het socketpad aan volgens je installatie. Activeer PHP en PHP-FPM met deze instructies: sudo apt install libapache2-mod-phpsudo a2enmod proxy_fcgi setenvif Herstart Apache om de wijzigingen toe te passen: sudo systemctl restart apache2 Open vervolgens je browser en ga naar: http://[server_ip]/info.php Vervang [server_ip] door het IP-adres of domein van je server. Je ziet dan de details van je PHP-installatie. Meerdere PHP-versies installeren Voor bepaalde projecten moet je mogelijk verschillende applicaties draaien, die elk andere functionaliteiten vereisen. Zo beheer en gebruik je meerdere PHP-versies op Ubuntu 24.04: Voeg eerst de PHP-repository toe: sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/php && sudo apt update Installeer de PHP-versies die je nodig hebt: sudo apt install php8.1 php8.1-fpm Kies welke PHP-versie actief moet zijn: sudo update-alternatives --set php /usr/bin/php8.1 Als je meerdere PHP-versies gebruikt, zorg er dan voor dat je webserver verwijst naar de juiste PHP-FPM-socket. PHP en PHP-FPM beveiligen: Best practices 1. Houd PHP en PHP-FPM up-to-date Zorg ervoor dat je regelmatig controleert op updates en deze toepast zodra ze beschikbaar zijn. Zo voorkom je bekende beveiligingslekken en houd je je systeem veilig. 2. Configureer PHP veilig Schakel onnodige en mogelijk gevaarlijke functies uit in het php.ini-bestand, zoals exec, shell_exec en eval. Gebruik de open_basedir-richtlijn om toegang van PHP tot bepaalde directories te beperken. Zet display_errors uit in productieomgevingen om foutmeldingen niet aan gebruikers te tonen. Beperk de maximale bestandsgrootte voor uploads en stel grenzen aan de uitvoeringstijd van scripts. Laat PHP draaien onder een apart, beperkt gebruikersaccount om escalatie van rechten te voorkomen. Werk PHP regelmatig bij naar de nieuwste stabiele versie. 3. Gebruik veilige foutafhandeling In ontwikkelomgevingen is het nuttig om fouten te tonen, maar in productie moeten foutmeldingen worden verborgen. Zet display_errors uit en log_errors aan zodat fouten veilig worden gelogd zonder informatie aan gebruikers prijs te geven. 4. Valideer invoer correct Controleer alle gebruikersinvoer zorgvuldig. Gebruik prepared statements bij databasequeries om SQL-injecties te voorkomen en zorg ervoor dat alleen verwachte invoer wordt geaccepteerd. 5. Beveilig de PHP-FPM-configuratie Laat PHP-FPM draaien onder een speciaal, beperkt gebruikersaccount. Beperk toegang tot de socket of poort van PHP-FPM zodat alleen je webapplicatie verbinding kan maken. 6. Schakel open_basedir in Gebruik de open_basedir-instelling om te voorkomen dat PHP toegang krijgt tot directories buiten de opgegeven paden. Hiermee voorkom je dat gevoelige gegevens worden blootgesteld via verkeerde requests. 7. Gebruik HTTPS Beveilig alle communicatie via HTTPS om man-in-the-middle-aanvallen en andere bedreigingen te voorkomen. Dwing HTTPS af op alle pagina’s van je applicatie. Conclusie Met deze handleiding heb je PHP en PHP-FPM succesvol geïnstalleerd op Ubuntu 24.04. Je server is nu gereed om dynamische webapplicaties te draaien. Vergeet niet om je systeem en pakketten regelmatig bij te werken om de prestaties en veiligheid te waarborgen. Als je deze instructie nuttig vond, bekijk dan zeker ook onze Cloud Servers om je cloudworkflow te versnellen!
10 July 2025 · 5 min to read

Heb je vragen,
opmerkingen of zorgen?

Onze professionals staan altijd klaar om je te helpen,
of je nu hulp nodig hebt of gewoon niet weet waar te beginnen
E-mail ons
Hostman's Support