Stručně: Staré verze PHP deaktivujete nejbezpečněji ve třech fázích: zjistit využití, verzi zablokovat a sledovat, teprve poté odinstalovat. V Plesku lze handler nejprve deaktivovat, takže jej nelze vybrat, a později jej odebrat v části Updates a komponenty. Každá odstraněná verze je o jednu méně, kterou musíte při další zranitelnosti, jako je PHP2Shell, zaplatovat a restartovat.
Proč uklízet právě teď?
Týden po PHP2Shell ukázal mnoha administrátorům, kolik verzí PHP je na jejich serverech nainstalováno. Každou bylo třeba zkontrolovat, každá potřebovala aktualizaci nebo přechodná opatření, každá služba restart. Pro PHP 8.1 a starší existují jen minimální backporty zdrojového kódu, u PHP 8.2 podpora končí 31. 12. 2026.
S touto zkušeností v čerstvé paměti je správný okamžik na úklid. Jak vůbec najít všechny instalace, popisuje článek Více verzí PHP na jednom serveru. Zde jde o další krok: kontrolované vypnutí.
Fáze 1: Zjistit využití
Než cokoli vypnete, musíte vědět, kdo verzi používá. Weby jsou ta zřejmá část. Méně viditelné jsou subdomény, testovací instalace, cron úlohy, skripty a komponenty panelu.
V Plesku vypíše příkaz plesk bin php_handler --list všechny registrované handlery. Pomocí --get-usage Plesk podle dokumentace ukáže, které domény určitý handler používají. Oba příkazy nic nemění.
# Plesk: všechny handlery a domény, které handler používají
plesk bin php_handler --list
plesk bin php_handler --get-usage -id <handler-id>
# Obecně: cron úlohy, které volají určitou verzi PHP
grep -rE "php(7|8\.0|8\.1)" /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null
Zkontrolujte navíc přístupové logy dotčených webů: testovací instalace, která měsíce nedostala žádný požadavek, je kandidátem na odstranění, nikoli na migraci. U každé staré verze si poznamenejte, kdo ji používá a proč.
Zeptejte se také lidí, kteří s weby pracují. Redakce, agentury a odborná oddělení často znají procesy, které nejsou v žádném seznamu: roční export pro účetnictví, formulář pro veletrh, rozhraní k systému řízení zásob. Co tam na staré verzi visí, se jinak projeví, až když to chybí.
Fáze 2: Zablokovat a sledovat
Mezikrok zabrání tomu, aby byla verze znovu přiřazena, aniž by se hned smazala. V Plesku lze jednotlivé handlery deaktivovat. Podle dokumentace Plesku nelze deaktivovaný handler vybrat v nastavení PHP webu; verze zůstává nainstalována. Na příkazové řádce se to provede pomocí plesk bin php_handler --disable -id <handler-id>.
Domény, které starou verzi ještě používají, přepněte předem po dohodě s odpovědnými osobami na podporovanou verzi. Jak to vypadá z pohledu provozovatele webu, popisuje článek Změna verze PHP v zákaznické zóně hostingu. Výběr vhodného handleru vysvětluje článek Plesk: porozumění handlerům PHP.
Během doby sledování dávejte pozor na chybová hlášení v lozích, chybějící výsledky cron úloh a zpětnou vazbu uživatelů. V jiných panelech se funkce jmenují jinak; ověřte si je v dokumentaci výrobce.
Konec doby sledování stanovte jako termín a určete, kdo poté odinstalaci schválí. Jinak se z mezikroku stane trvalý stav a stará verze na serveru stejně zůstane.
Fáze 3: Odinstalovat
Teprve když doba sledování uplynula bez problémů, verzi úplně odstraňte. V Plesku se to podle dokumentace provádí v Tools & Settings, Updates, Add/Remove Components, v oblasti Web hosting u verzí interpretu PHP. Nainstalované verze jsou tam označeny a lze je vybrat k odstranění.
Na serverech bez panelu tuto úlohu přebírá správa balíčků. Zálohujte předem konfiguraci verze, například /etc/php/7.4/ u Debianu a Ubuntu, abyste v nouzi dohledali, jaká nastavení platila.
# Zálohovat konfiguraci, pak odstranit balíčky větve (příklad Debian/Ubuntu, PHP 7.4)
tar czf /root/php74-konfiguration.tar.gz /etc/php/7.4/
apt remove 'php7.4*'
Po odstranění stojí za kontrolu. V Plesku dokumentace doporučuje plesk bin php_handler --reread, aby se po změnách binárek PHP znovu načetly informace o handlerech. Zkontrolujte navíc, zda servisní plány neodkazují na odstraněnou verzi.
Typické nástrahy
| Nástraha | Podle čeho ji poznáte | Co pomáhá |
|---|---|---|
| Komponenta panelu je vázána na verzi | Panel při odebírání hlásí závislost | Komponentu nejprve přepnout, nebo verzi ponechat |
| Servisní plán odkazuje na starou verzi | Nové weby dostávají starou verzi nebo chybové hlášení | Upravit plán, pak verzi odstranit |
| Cron úloha volá pevnou cestu | Skript po odstranění selže | Změnit cestu na podporovanou verzi |
| Aplikace neběží na nové verzi | Chyba po přepnutí v chybovém logu | Aplikaci aktualizovat nebo migrovat |
Nelze-li aplikaci posunout na podporovanou verzi, přestává být vypnutí staré verze otázkou konfigurace a stává se migračním projektem. Rizika zastaralých větví popisuje průvodce PHP End-of-Life: rizika zastaralých verzí.
Další kandidát už je znám
Úklid není jednorázová akce. Už 31. 12. 2026 vypadává PHP 8.2 z podpory projektu PHP. Kdo nyní odstraňuje verze až po 8.1, měl by v témže kroku stanovit, jak to bude s 8.2. Jinak začne stejná hra znovu za pár týdnů.
Osvědčilo se jednoduché pravidlo pro server: nabízejí se jen větve, které projekt PHP podporuje. Každá větev dostane při zřízení datum, kdy se znovu přezkoumá, podle konce podpory na php.net. Souvislosti tohoto cyklu vysvětluje stránka Verze PHP a cyklus vydání.
Kdo jako hoster nebo agentura hostuje zákazníky na serveru, měl by je informovat včas. Oznámení s datem, žádost o přechod a nabídka podpory předejdou tomu, že v rozhodný den weby vypadnou. Zákazníci, jejichž aplikace nepůjde s dobou, tak včas poznají, že je na řadě aktualizace nebo migrace, a mohou ji naplánovat.
Jak konkrétně pomáhá PHP SOS?
- Zjišťujeme, které weby, cron úlohy a komponenty panelu používají kterou verzi PHP.
- Domény po dohodě přepneme na podporované verze a staré handlery zablokujeme.
- Po době sledování staré verze kontrolovaně odstraníme a výsledek ověříme.
- Kde aplikace nepůjdou s dobou, naplánujeme migraci z PHP 8.1 a starších.
Časté dotazy
Proč bych měl odstranit nepoužívané verze PHP?
Každou nainstalovanou verzi je nutné při každé zranitelnosti zkontrolovat, aktualizovat a restartovat. Staré větve jako PHP 8.1 a starší už od projektu PHP aktualizace nedostávají. Nepoužívané verze přinášejí jen riziko a práci.
Jaký je rozdíl mezi deaktivací a odinstalací?
Při deaktivaci zůstává verze nainstalována, ale nelze ji znovu vybrat. Při odinstalaci se ze serveru odstraní. Deaktivace je bezpečný mezikrok, jak zjistit, zda něco nechybí.
Může odstranění verze PHP narušit funkce panelu?
Ano. Některé komponenty panelu, například webmail nebo správní nástroje, jsou vázány na určitou verzi PHP. Takové závislosti vyjasněte před odstraněním, panel na ně zpravidla upozorní.
Jak dlouho by měla trvat doba sledování?
Tak dlouho, aby všechny pravidelné procesy proběhly alespoň jednou, tedy i měsíční cron úlohy a exporty. Délku stanovte s odbornými odděleními.