Actuele situatie: PHP2Shell. Twee kritieke PHP-kwetsbaarheden (CVSS 9.2) maken schadelijke code zonder inloggen mogelijk. Patches sinds 21-10-2026.Wat u nu moet doen →

Oude PHP-versies in het hostingpaneel uitschakelen

PHP2Shell is een goede aanleiding om oude PHP-versies kwijt te raken. Zo gaat u in drie fasen te werk, zodat geen website en geen cronjob ongemerkt uitvalt.

Stand 5 min. leestijdHosting en distributies

Kort gezegd: Oude PHP-versies deactiveert u het veiligst in drie fasen: gebruik vaststellen, de versie blokkeren en observeren, pas dan verwijderen. In Plesk kunt u een handler eerst deactiveren, zodat hij niet meer gekozen kan worden, en later onder Updates en componenten verwijderen. Elke verwijderde versie is er één minder die u bij het volgende lek zoals PHP2Shell moet patchen en herstarten.

Waarom juist nu opruimen?

De week na PHP2Shell heeft veel beheerders getoond hoeveel PHP-versies op hun servers geïnstalleerd zijn. Elke daarvan moest worden gecontroleerd, elke had een update of overbruggingsmaatregelen nodig, elke service een herstart. Voor PHP 8.1 en ouder bestaan alleen minimale bronbackports, voor PHP 8.2 eindigt de ondersteuning op 31 december 2026.

Met die ervaring vers in het geheugen is dit het juiste moment om op te ruimen. Hoe u überhaupt alle installaties vindt, beschrijft het artikel Meerdere PHP-versies op één server. Hier gaat het om de volgende stap: het gecontroleerd uitschakelen.

Fase 1: gebruik vaststellen

Voordat u iets uitschakelt, moet u weten wie een versie gebruikt. Websites zijn het voor de hand liggende deel. Minder zichtbaar zijn subdomeinen, testinstallaties, cronjobs, scripts en paneelcomponenten.

In Plesk toont de opdracht plesk bin php_handler --list alle geregistreerde handlers. Met --get-usage laat Plesk volgens de documentatie zien welke domeinen een bepaalde handler gebruiken. Beide opdrachten wijzigen niets.

# Plesk: alle handlers en de domeinen die een handler gebruiken
plesk bin php_handler --list
plesk bin php_handler --get-usage -id <handler-id>

# Algemeen: cronjobs die een bepaalde PHP-versie aanroepen
grep -rE "php(7|8\.0|8\.1)" /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null

Controleer bovendien de toegangslogs van de betrokken websites: een testinstallatie die al maanden geen verzoek heeft ontvangen, is een kandidaat om te verwijderen, niet om te migreren. Noteer voor elke oude versie wie ze gebruikt en waarom.

Vraag ook na bij de mensen die met de websites werken. Redacties, bureaus en afdelingen kennen vaak processen die op geen enkele lijst staan: de jaarlijkse export voor de boekhouding, het formulier voor een beurs, de koppeling met het ERP-systeem. Wat daar aan een oude versie hangt, valt anders pas op wanneer het ontbreekt.

Fase 2: blokkeren en observeren

De tussenstap voorkomt dat een versie opnieuw wordt toegewezen, zonder haar meteen te wissen. In Plesk bestaat daarvoor de mogelijkheid om afzonderlijke handlers te deactiveren. Volgens de Plesk-documentatie kan een gedeactiveerde handler in de PHP-instellingen van een website niet meer worden gekozen; de versie blijft geïnstalleerd. Op de opdrachtregel gebeurt dat met plesk bin php_handler --disable -id <handler-id>.

Domeinen die de oude versie nog gebruiken, zet u vooraf in overleg met de verantwoordelijken om naar een ondersteunde versie. Hoe dat er vanuit het perspectief van de websitebeheerder uitziet, beschrijft het artikel PHP-versie wijzigen in het hostingklantenpaneel. De keuze van de juiste handler legt het artikel Plesk: PHP-handlers begrijpen uit.

Let tijdens de observatieperiode op foutmeldingen in de logs, uitblijvende resultaten van cronjobs en reacties van gebruikers. In andere panelen heten de functies anders; raadpleeg daar de documentatie van de fabrikant.

Tip

Leg het einde van de observatieperiode vast als datum en benoem wie daarna het verwijderen vrijgeeft. Anders wordt de tussenstap een blijvende toestand en blijft de oude versie toch op de server.

Fase 3: verwijderen

Pas wanneer de observatieperiode zonder bijzonderheden is verstreken, verwijdert u de versie volledig. In Plesk gebeurt dat volgens de documentatie onder Tools & Settings, Updates, Add/Remove Components, in het onderdeel Web hosting bij de PHP-interpreterversies. Geïnstalleerde versies zijn daar gemarkeerd en kunnen voor verwijdering worden geselecteerd.

Op servers zonder paneel neemt de pakketbeheerder deze taak over. Maak vooraf een back-up van de configuratie van de versie, bijvoorbeeld /etc/php/7.4/ onder Debian en Ubuntu, zodat u in nood kunt nagaan welke instellingen golden.

# Configuratie veiligstellen, daarna pakketten van een tak verwijderen (voorbeeld Debian/Ubuntu, PHP 7.4)
tar czf /root/php74-konfiguration.tar.gz /etc/php/7.4/
apt remove 'php7.4*'

Na het verwijderen loont een controle. In Plesk adviseert de documentatie plesk bin php_handler --reread om handlergegevens na wijzigingen aan PHP-binaries opnieuw in te lezen. Controleer bovendien of serviceplannen nog naar de verwijderde versie verwijzen.

Typische valkuilen

Valkuil Waaraan u hem herkent Wat helpt
Paneelcomponent hangt aan de versie Het paneel meldt bij verwijderen een afhankelijkheid Component eerst omzetten of versie behouden
Serviceplan verwijst naar oude versie Nieuwe websites krijgen de oude versie of een foutmelding Plan aanpassen, daarna versie verwijderen
Cronjob roept vast pad aan Script mislukt na verwijderen Pad wijzigen naar ondersteunde versie
Toepassing draait niet op nieuwe versie Fout na omschakeling in het foutlog Toepassing bijwerken of migreren

Laat een toepassing zich niet naar een ondersteunde versie tillen, dan is het uitschakelen van de oude versie geen configuratiekwestie meer, maar een migratieproject. De risico's van verouderde takken beschrijft de gids PHP end-of-life: risico's van verouderde versies.

De volgende kandidaat staat al vast

Opruimen is geen eenmalige actie. Al op 31 december 2026 valt PHP 8.2 uit de ondersteuning van het PHP-project. Wie nu versies tot 8.1 verwijdert, moet in dezelfde ronde vastleggen hoe het met 8.2 verdergaat. Anders begint hetzelfde spel over enkele weken opnieuw.

Een eenvoudige regel voor de server heeft zich bewezen: er worden alleen takken aangeboden die het PHP-project ondersteunt. Elke tak krijgt bij het inrichten een datum waarop hij opnieuw wordt beoordeeld, afgestemd op het einde van de ondersteuning op php.net. Achtergronden bij deze cyclus legt de pagina PHP-versies en releasecyclus uit.

Wie als hoster of bureau klanten op de server heeft, moet hen tijdig informeren. Een aankondiging met datum, het verzoek om over te schakelen en een aanbod voor ondersteuning voorkomen dat op de stichtdatum websites uitvallen. Klanten wier toepassing niet meegaat, zien zo op tijd dat een update of migratie aansteekt, en kunnen daarvoor plannen.

Hoe helpt PHP SOS concreet?

  • Wij stellen vast welke websites, cronjobs en paneelcomponenten welke PHP-versie gebruiken.
  • Wij zetten domeinen in overleg om naar ondersteunde versies en blokkeren oude handlers.
  • Na de observatieperiode verwijderen wij oude versies gecontroleerd en controleren wij het resultaat.
  • Waar toepassingen niet meegaan, plannen wij de migratie van PHP 8.1 en ouder.

Veelgestelde vragen

Waarom zou ik ongebruikte PHP-versies verwijderen?

Elke geïnstalleerde versie moet bij elk lek worden gecontroleerd, bijgewerkt en herstart. Oude takken zoals PHP 8.1 en ouder krijgen van het PHP-project geen updates meer. Ongebruikte versies brengen alleen risico en werk met zich mee.

Wat is het verschil tussen deactiveren en verwijderen?

Bij deactiveren blijft de versie geïnstalleerd, maar kan ze niet meer opnieuw worden gekozen. Bij verwijderen wordt ze van de server gehaald. Deactiveren is de veilige tussenstap om te zien of er iets ontbreekt.

Kan het verwijderen van een PHP-versie paneelfuncties verstoren?

Ja. Sommige componenten van een paneel, zoals webmail of beheerhulpmiddelen, hangen aan een bepaalde PHP-versie. Stel dergelijke afhankelijkheden vast vóór het verwijderen; het paneel wijst er in de regel op.

Hoe lang moet de observatieperiode duren?

Zo lang dat alle regelmatige processen minstens één keer zijn gedraaid, dus ook maandelijkse cronjobs en exports. Bepaal de duur samen met de afdelingen.

Bronnen

Direct contact

Elk uur telt. Schrijf ons nu.

Beschrijf kort het systeem, de PHP-versie en wat u opmerkt. Wij nemen contact op, brengen de situatie in kaart en werken op afstand tot het incident is afgerond en gedocumenteerd.

Directe hulp