Stručne: Staré verzie PHP vypnete najbezpečnejšie v troch fázach: zistiť využitie, verziu zablokovať a pozorovať, až potom odinštalovať. V Plesku sa dá handler najprv deaktivovať, takže sa už nedá vybrať, a neskôr odstrániť v časti Aktualizácie a komponenty. Každá odstránená verzia je o jednu menej, ktorú budete musieť pri ďalšej zraniteľnosti typu PHP2Shell zaplátať a reštartovať.
Prečo upratovať práve teraz?
Týždeň po PHP2Shell ukázal mnohým adminom, koľko verzií PHP je na ich serveroch nainštalovaných. Každú z nich bolo treba skontrolovať, každá potrebovala aktualizáciu alebo prechodné opatrenia, každá služba reštart. Pre PHP 8.1 a staršie existujú len minimálne backporty zdrojového kódu, pre PHP 8.2 podpora končí 31. 12. 2026.
S touto skúsenosťou v čerstvej pamäti je správny čas upratať. Ako vôbec nájsť všetky inštalácie, opisuje článok Viac verzií PHP na jednom serveri. Tu ide o ďalší krok: riadené vypnutie.
Fáza 1: zistiť využitie
Skôr než niečo vypnete, musíte vedieť, kto verziu používa. Weby sú zjavná časť. Menej viditeľné sú subdomény, testovacie inštalácie, cronjoby, skripty a komponenty panela.
V Plesku príkaz plesk bin php_handler --list vypíše všetky zaregistrované handlery. Pomocou --get-usage Plesk podľa dokumentácie ukáže, ktoré domény používajú konkrétny handler. Ani jeden z príkazov nič nemení.
# Plesk: všetky handlery a domény, ktoré handler používajú
plesk bin php_handler --list
plesk bin php_handler --get-usage -id <handler-id>
# Všeobecne: cronjoby, ktoré volajú konkrétnu verziu PHP
grep -rE "php(7|8\.0|8\.1)" /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null
Skontrolujte navyše prístupové logy dotknutých webov: testovacia inštalácia, ktorá mesiace nedostala žiadnu požiadavku, je kandidátom na odstránenie, nie na migráciu. Pri každej starej verzii si poznačte, kto ju používa a prečo.
Opýtajte sa aj ľudí, ktorí s webmi pracujú. Redakcie, agentúry a odborné oddelenia často poznajú postupy, ktoré nie sú v žiadnom zozname: ročný export pre účtovníctvo, formulár pre veľtrh, rozhranie na systém hospodárenia s tovarom. Čo na starej verzii závisí tam, to sa inak ukáže až vtedy, keď to chýba.
Fáza 2: zablokovať a pozorovať
Medzikrok zabráni tomu, aby sa verzia znovu priradila, bez toho, aby sa hneď zmazala. V Plesku je na to možnosť deaktivovať jednotlivé handlery. Podľa dokumentácie Plesku sa deaktivovaný handler už nedá vybrať v nastaveniach PHP webu; verzia ostáva nainštalovaná. Na príkazovom riadku sa to robí príkazom plesk bin php_handler --disable -id <handler-id>.
Domény, ktoré ešte používajú starú verziu, prepnite vopred po dohode so zodpovednými osobami na podporovanú verziu. Ako to vyzerá z pohľadu prevádzkovateľa webu, opisuje článok Zmena verzie PHP v zákazníckej zóne hostingu. Výber vhodného handlera vysvetľuje článok Plesk: ako rozumieť handlerom PHP.
Počas doby pozorovania sledujte chybové hlásenia v logoch, chýbajúce výsledky cronjobov a spätnú väzbu používateľov. V iných paneloch sa funkcie volajú inak; pozrite si tam dokumentáciu výrobcu.
Koniec doby pozorovania určte ako termín a pomenujte, kto potom odinštalovanie schváli. Inak sa z medzikroku stane trvalý stav a stará verzia na serveri napokon ostane.
Fáza 3: odinštalovať
Až keď doba pozorovania uplynie bez nápadností, verziu úplne odstráňte. V Plesku sa to podľa dokumentácie robí v Tools & Settings, Updates, Add/Remove Components, v oblasti Web hosting pri verziách interpretera PHP. Nainštalované verzie sú tam označené a dajú sa vybrať na odstránenie.
Na serveroch bez panela túto úlohu preberá správa balíkov. Skôr si zálohujte konfiguráciu verzie, napríklad /etc/php/7.4/ v Debiane a Ubuntu, aby ste mohli v prípade núdze spätne zistiť, aké nastavenia platili.
# Zálohovať konfiguráciu, potom odstrániť balíky jednej vetvy (príklad Debian/Ubuntu, PHP 7.4)
tar czf /root/php74-konfiguration.tar.gz /etc/php/7.4/
apt remove 'php7.4*'
Po odstránení sa oplatí kontrola. V Plesku dokumentácia odporúča plesk bin php_handler --reread, aby sa po zmenách v binárkach PHP znovu načítali informácie o handleroch. Skontrolujte navyše, či servisné plány ešte neodkazujú na odstránenú verziu.
Typické úskalia
| Úskalie | Ako ho spoznáte | Čo pomôže |
|---|---|---|
| Komponent panela závisí od verzie | Panel pri odstraňovaní hlási závislosť | Komponent najprv prestavať alebo verziu ponechať |
| Servisný plán odkazuje na starú verziu | Nové weby dostanú starú verziu alebo chybové hlásenie | Upraviť plán, potom verziu odstrániť |
| Cronjob volá pevnú cestu | Skript po odstránení zlyháva | Zmeniť cestu na podporovanú verziu |
| Aplikácia nebeží na novej verzii | Chyba po prepnutí v chybovom logu | Aplikáciu aktualizovať alebo migrovať |
Ak sa aplikácia nedá povýšiť na podporovanú verziu, vypnutie starej verzie už nie je otázkou konfigurácie, ale migračným projektom. Riziká zastaraných vetiev opisuje sprievodca Koniec životnosti PHP: riziká zastaraných verzií.
Ďalší kandidát je už známy
Upratovanie nie je jednorazová akcia. Už 31. 12. 2026 vypadáva PHP 8.2 z podpory projektu PHP. Kto teraz odstraňuje verzie až po 8.1, mal by zároveň určiť, ako to bude s 8.2. Inak sa tá istá hra začne znova o niekoľko týždňov.
Osvedčilo sa jednoduché pravidlo pre server: ponúkajú sa len vetvy, ktoré projekt PHP podporuje. Každá vetva dostane pri zriadení dátum, kedy sa znovu preverí, podľa konca podpory na php.net. Súvislosti tohto cyklu vysvetľuje stránka Verzie PHP a cyklus vydávania.
Kto má ako poskytovateľ hostingu alebo agentúra na serveri zákazníkov, mal by ich informovať včas. Oznámenie s dátumom, žiadosť o prepnutie a ponuka podpory zabránia tomu, aby v deň uzávierky vypadli weby. Zákazníci, ktorých aplikácia nejde s dobou, tak včas rozpoznajú, že sa chystá aktualizácia alebo migrácia, a môžu s ňou plánovať.
Ako konkrétne pomáha PHP SOS?
- Zistíme, ktoré weby, cronjoby a komponenty panela používajú ktorú verziu PHP.
- Po dohode prepneme domény na podporované verzie a zablokujeme staré handlery.
- Po dobe pozorovania staré verzie kontrolovane odstránime a výsledok preveríme.
- Tam, kde aplikácie nejdú s dobou, naplánujeme migráciu z PHP 8.1 a staršieho.
Časté otázky
Prečo by som mal odstrániť nepoužívané verzie PHP?
Každú nainštalovanú verziu treba pri každej zraniteľnosti skontrolovať, aktualizovať a reštartovať. Staré vetvy ako PHP 8.1 a staršie už od projektu PHP nedostávajú aktualizácie. Nepoužívané verzie prinášajú len riziko a námahu.
Aký je rozdiel medzi deaktiváciou a odinštalovaním?
Pri deaktivácii ostane verzia nainštalovaná, ale už sa nedá znovu vybrať. Pri odinštalovaní sa zo servera odstráni. Deaktivácia je bezpečný medzikrok, ktorým zistíte, či niečo nechýba.
Môže odstránenie verzie PHP narušiť funkcie panela?
Áno. Niektoré komponenty panela, napríklad webmail alebo správcovské nástroje, závisia od konkrétnej verzie PHP. Takéto závislosti vyjasnite pred odstránením; panel na ne spravidla upozorní.
Ako dlho by mala trvať doba pozorovania?
Dosť dlho na to, aby všetky pravidelné procesy prebehli aspoň raz, teda aj mesačné cronjoby a exporty. Dĺžku určte spolu s odbornými oddeleniami.