PHP versie updaten, zonder dat je site breekt
Draait je site op PHP 7.4, 8.0 of 8.1, dan krijgt hij geen beveiligingsupdates meer. Hier lees je hoe je je PHP versie updatet, wat er onderweg kan breken en wanneer het slimmer is om van PHP af te gaan.
Waarom een oude PHP versie gevaarlijk is
PHP is de taal waarop WordPress, Joomla, Drupal, Magento, Laravel en veel maatwerk draaien. Elke versie krijgt twee jaar actieve ondersteuning en daarna nog twee jaar alleen beveiligingsupdates. Daarna is hij end of life: lekken die dan nog gevonden worden, blijven open.
In oktober 2026 werden twee kritieke lekken in PHP zelf bekend, PHP2Shell, waarmee een aanvaller code op je server kan uitvoeren. Voor de ondersteunde versies kwam een patch. Voor PHP 8.1 en ouder niet. Een beveiligingsplugin helpt daar niet tegen, want die draait pas nadat PHP het verzoek al heeft verwerkt.
| Versie | Status | Beveiligingsupdates tot | Patch PHP2Shell |
|---|---|---|---|
| PHP 8.5 | Actief: bugfixes en beveiliging | eind 2029 | 8.5.12 of nieuwer |
| PHP 8.4 | Actief: bugfixes en beveiliging | eind 2028 | 8.4.27 of nieuwer |
| PHP 8.3 | Alleen beveiligingsupdates | 31 december 2027 | 8.3.36 of nieuwer |
| PHP 8.2 | Alleen beveiligingsupdates | 31 december 2026 | 8.2.35 of nieuwer |
| PHP 8.1 | Geen updates meer | 31 december 2025 | Geen patch |
| PHP 8.0 | Geen updates meer | november 2023 | Geen patch |
| PHP 7.x | Geen updates meer | november 2022 (7.4) | Geen patch |
| PHP 5.x | Geen updates meer | eind 2018 (5.6) | Geen patch |
Ook met een gepatchte versie ben je er nog niet: een derde lek (CVE-2026-115560) raakt ook gepatchte servers in een bepaalde sessie-instelling. Laat session.upload_progress.enabled uit staan tot de volgende PHP-release. Details staan in het advies over PHP2Shell.
Welke PHP versie draait mijn site?
- Snelst: vul je domein in bij de PHP-check. Laat je server zijn versie zien, dan lezen we die uit.
- WordPress: Gereedschap › Sitestatus › Info › Server. Daar staat de PHP-versie, en WordPress waarschuwt op het tabblad Status als hij verouderd is.
- Joomla: Systeem › Systeeminformatie. Drupal: Rapporten › Statusrapport.
- Hostingpaneel: in cPanel heet het meestal MultiPHP Manager of Select PHP Version, in Plesk PHP-instellingen, in DirectAdmin PHP-versiekeuze. Bij andere hosters zoek je op “PHP-versie”.
- Via de terminal:
php -v. Let op: dat is de versie op de command line. De website kan een andere versie gebruiken.
PHP updaten in 5 stappen
- Maak een back-up van de bestanden en de database, en controleer dat je hem kunt terugzetten.
- Zet een kopie op een staging-omgeving. Veel hosters bieden dat met één klik. Zet daar de nieuwe PHP-versie aan, niet op je live site.
- Werk eerst alles bij op de kopie: WordPress of je CMS, thema’s en plugins. Oude versies van plugins zijn de meest voorkomende reden dat een site breekt op PHP 8.
- Scan de code. Met PHPCompatibility (voor WordPress: PHPCompatibilityWP) vind je functies die in de nieuwe versie niet meer bestaan. Zet daarna de foutmeldingen aan en loop de belangrijkste pagina’s, formulieren en de kassa door.
- Zet de live site over op een rustig moment, en houd de foutlogs een paar dagen in de gaten. Gaat het mis, zet dan de oude versie terug en zoek het op staging verder uit.
Wat er breekt van PHP 7.4 naar 8.x
De stap van 7.4 naar 8 is de grootste. Dit zijn de wijzigingen waar oude code het vaakst op stukloopt:
| Wijziging | Wat er gebeurt |
|---|---|
each() | Verwijderd in PHP 8.0. Zat in veel oude plugins en thema’s voor het doorlopen van arrays; vervangen door foreach. |
create_function() | Verwijderd in PHP 8.0. Vervangen door een gewone anonieme functie. |
Strengere types | Sinds PHP 8.0 geven veel ingebouwde functies een fout (TypeError) in plaats van een waarschuwing als je het verkeerde type meegeeft. Rekenen met tekst die geen getal is, geeft ook een fout. |
Vergelijken van tekst en getallen | In PHP 8.0 is 0 == "abc" niet meer waar. Code die daarop leunde, doet ineens iets anders, zonder foutmelding. |
null aan ingebouwde functies | Sinds PHP 8.1 verouderd (deprecated): bijvoorbeeld strlen(null). Nog geen fout, wel een melding in je logs. |
Dynamische properties | Sinds PHP 8.2 verouderd: een property op een object zetten die niet in de class is gedeclareerd. Komt veel voor in oudere WordPress-plugins. |
Maatwerk in Laravel of een ander framework? Dan hangt de PHP-versie samen met de versie van het framework en de pakketten in composer.json. Vaak moet je eerst die bijwerken, en dat is meer werk dan alleen PHP. Draai je nog Drupal 7 (end of life sinds januari 2025) of Joomla 3 (sinds augustus 2023), dan krijgt ook je CMS zelf geen updates meer. Een PHP-upgrade lost dat niet op.
Wat kost het om je PHP te laten updaten?
Indicatief, en sterk afhankelijk van je site:
- Eenvoudige WordPress-site, alles up-to-date: vaak alleen een paar minuten in je hostingpaneel. Kun je het niet zelf kiezen, dan doet je hoster het meestal op verzoek.
- WordPress met oude plugins of een maatwerkthema: reken op een paar uur werk van een developer, voor testen en het vervangen van plugins die niet meer worden bijgehouden.
- Maatwerk, Laravel of een oud CMS: van een dag tot enkele weken, afhankelijk van hoeveel code er is en hoe oud het framework is. Laat eerst inschatten wat er moet gebeuren.
En het is niet eenmalig. Over een paar jaar is ook je nieuwe versie end of life, en begint het opnieuw.
Of ga helemaal van PHP af
Bestaat je site vooral uit vaste pagina’s, zoals wie je bent, wat je doet en hoe je je bereikt? Dan heb je PHP niet nodig. Wij bouwen zulke sites als statische pagina’s: er draait geen PHP, database of plugin op de server, dus er valt ook niets te updaten en lekken als PHP2Shell raken je niet.
Je teksten, domein, e-mail en posities in Google gaan mee. Je ziet eerst een proefversie en betaalt pas als je verder wil. Daarna regelen wij hosting, back-ups en beveiliging. Zo werkt de overstap van WordPress, en voor andere systemen gaat het net zo.
Vanaf €399 eenmalig daarna vanaf €39 per maand, excl. btw
Twijfel je tussen upgraden en overstappen? App ons je site en je PHP-versie. We zeggen wat een upgrade inhoudt, en of overstappen goedkoper is.
Vragen
Hoe update ik mijn PHP-versie?
Bij de meeste hosters kies je de PHP-versie zelf in het hostingpaneel, per website of per map. Staat die keuze er niet, dan doet je hoster het op verzoek. Test wel eerst op een kopie, zoals in het stappenplan hierboven.
Gaat mijn site kapot als ik PHP update?
Dat kan, vooral bij de stap van PHP 7.4 naar 8.x en bij oude plugins, thema’s of maatwerk. Gaat het mis, dan zet je in de meeste hostingpanelen de oude versie met één klik terug.
PHP 7.4 is end of life. Wat betekent dat?
Dat PHP 7.4 sinds november 2022 geen beveiligingsupdates meer krijgt. Nieuwe lekken worden niet meer gedicht. Het lek PHP2Shell van oktober 2026 is daar een voorbeeld van: voor 7.4, 8.0 en 8.1 komt geen patch.
Mijn hoster draait nog PHP 8.1. Is dat erg?
Ja. PHP 8.1 is sinds 31 december 2025 end of life en krijgt ook voor PHP2Shell geen patch. Ga naar 8.3 of nieuwer. Biedt je hoster dat niet aan, dan is het tijd voor een andere hoster.
Welke PHP-versie moet ik kiezen?
PHP 8.3 of nieuwer, met de patch voor PHP2Shell. PHP 8.2 krijgt nog tot eind 2026 beveiligingsupdates, dus wie nu toch moet testen, kan beter meteen een stap verder gaan.
Wil je meer weten dan alleen je PHP-versie? Doe de website security check, of lees hoe je WordPress beter beveiligt.
Upgraden of overstappen?
Stuur ons het adres van je site. We kijken naar je PHP-versie en je systeem, en zeggen wat het verstandigst is.