Verze PHP a jejich upgrady
Modul 8: Zálohy, testovací prostředí a aktualizace PHP · Doba čtení: 10 minut
Cíl lekce: Po této lekci budete umět bezpečně připravit, provést a v případě potřeby vrátit zpět upgrade PHP.
Klíčové pojmy: životní cyklus PHP (aktivní podpora, pouze bezpečnost, konec podpory), kompatibilita WordPressu, šablony a pluginů, zastaralé (deprecated), varování, fatální chyba, Stav webu, chybový log, testovací prostředí (staging), obnovení zálohy, nechat provést upgrade
Proč na verzích PHP záleží
WordPress, Vaše šablona a Vaše pluginy jsou napsané v PHP (lekce 1.2). Každý rok vychází nová verze PHP (8.3, 8.4, 8.5, ...). Každá verze je udržovaná po pevně danou dobu:
- aktivní podpora: dva roky oprav chyb a bezpečnostních oprav;
- pouze bezpečnost: poté ještě dva roky pouze bezpečnostní opravy;
- konec podpory (end of life): žádné další opravy, ani u bezpečnostních děr.
Stav k 8. listopadu 2026 podle php.net:
| Verze | Bezpečnostní aktualizace do | Stav |
|---|---|---|
| 8.1 a starší | (uplynulo) | Žádné další aktualizace |
| 8.2 | 31. prosince 2026 | Pouze bezpečnost, blíží se konec |
| 8.3 | 31. prosince 2027 | Pouze bezpečnost |
| 8.4 | 31. prosince 2028 | Aktivní |
| 8.5 | 31. prosince 2029 | Aktivní |
Web na verzi bez aktualizací běží na softwaru se známými bezpečnostními dírami, které se už neopravují. Novější verze jsou navíc znatelně rychlejší (lekce 6.3). A wordpress.org doporučuje PHP 8.3 nebo vyšší (stav k listopadu 2026). Cílem je tedy udržovat krok každý rok, ne dělat jednou za pět let velký skok.
Proč může upgrade něco rozbít
Každá nová verze PHP něco mění. Funkce, které byly roky označené jako zastaralé (deprecated), se odstraňují a pravidla se zpřísňují. Několik známých příkladů:
- PHP 8.0 odstranilo mimo jiné
create_function()aeach()a mnoho varování se změnilo na chyby; - PHP 8.2 označilo dynamické vytváření vlastností u objektů jako zastaralé, což se hojně vyskytuje ve starších pluginech.
Existují tři druhy hlášení a rozdíl mezi nimi je důležitý:
| Hlášení | Význam | Důsledek |
|---|---|---|
| Deprecated (zastaralé) | „Toto ještě funguje, ale v příští verzi to zmizí“ | Nic viditelného, varování do budoucna |
| Warning nebo Notice | Něco úplně nesedí | Obvykle nic viditelného, někdy se nějaká část chová divně |
| Fatal error | PHP se zastaví | Bílá stránka nebo „kritická chyba“ (lekce 5.4) |
WordPress sám obvykle drží krok s novými verzemi PHP dobře. Riziko spočívá ve starých pluginech a šablonách, zejména pokud dlouho nebyly aktualizované nebo jde o zakázkové řešení.
Jak zjistit svoji aktuální verzi
- Ve WordPressu: Nástroje > Stav webu, záložka Informace, pod Server: verze PHP. Stav webu Vás také upozorní, pokud je Vaše verze zastaralá.
- Ve Vašem hostingovém panelu: v DirectAdmin s CloudLinux v položce Select PHP version (s „(current)“ za aktuální verzí).
- Někdy to server prozradí v hlavičce
X-Powered-By: PHP/8.3.x. Lépe ne (lekce 7.4), ale pokud tam je, snadno to zjistíte.
Pozor: u mnoha hosterů platí verze PHP pro celý balíček, tedy pro všechny weby v něm. Starý web ve stejném balíčku Vám tak může bránit v upgradu. To je další důvod, proč staré weby uklidit nebo jim dát vlastní balíček.
Upgrade krok za krokem
- Nejprve aktualizujte. Aktualizujte WordPress, Vaši šablonu a všechny pluginy na aktuální verzi PHP. Velká část problémů tím zmizí, protože tvůrci přizpůsobují svůj kód novým verzím PHP.
- Podívejte se, co říkají Vaše pluginy. Na stránce pluginu na wordpress.org je uvedená požadovaná verze PHP; v changelogu často „compatible with PHP 8.x“. Plugin, který už roky nebyl aktualizovaný (lekce 5.3), je kandidátem na nahrazení.
- Vytvořte zálohu (lekce 8.1).
- Otestujte v testovacím prostředí (staging) (lekce 8.3). Pokud Vám hoster umožní nastavit jinou verzi PHP pro každý web, nastavte testovací prostředí na novou verzi. Pokud to nejde (jedna verze pro celý balíček), otestujte v testovacím prostředí v jiném balíčku, lokálně, nebo vyberte klidný okamžik na produkci se starou verzí připravenou k obnovení.
- Přepnutí: vyberte novou verzi ve svém panelu. V DirectAdmin s CloudLinux ji vyberete v Select PHP version a kliknete na Apply; bez Apply se nic nezmění.
- Okamžitě zkontrolujte: otevřete svůj web a proklikejte několik stránek, včetně administrace, formuláře a (u obchodu) pokladny. Podívejte se do chybového logu (lekce 5.4) na nové řádky
PHP Fatal error. - Rozšíření a nastavení: u některých hosterů jsou PHP rozšíření a volby (jako
memory_limit) vázané na verzi. Po přepnutí zkontrolujte, zda jsou u nové verze nastavené správně.
Když se něco pokazí
- Fatální chyba: vraťte starou verzi (u většiny hosterů to jde okamžitě), aby web zase fungoval. V chybovém logu najděte, který plugin nebo šablona to byla (cesta je uvedená v chybovém hlášení), aktualizujte ji, nahraďte ji nebo požádejte autora o řešení. Poté to zkuste znovu.
- Pouze hlášení deprecated: žádný důvod k návratu. Je to ale varování: u příští verze se z toho může stát chyba. Poznamenejte si, o který plugin jde.
- Zakázkové řešení, které přestalo fungovat: starý web vytvořený webovým vývojářem může obsahovat kód, který už nikdo neudržuje. Pak je potřeba, aby ho upravil někdo, kdo rozumí PHP. Někteří hosteři, včetně WebOké, nabízejí, že to za Vás udělají.
Neponechávejte web „navždy“ na staré verzi jen proto, že jeden plugin nestíhá. To je jen odklad problému, který se každým rokem zvětšuje.
Větší jistota předem
Pro ty, kdo chtějí jít dál: pomocí PHP_CodeSniffer a pravidel PHPCompatibilityWP můžete nechat zkontrolovat kód svých pluginů a šablon na věci, které nebudou fungovat v novější verzi PHP, aniž byste web museli spouštět. Najde to mnoho, ale ne vše. Testování v testovacím prostředí (staging) je stále potřeba.
V praxi: jak to vypadá v panelu
Jako příklad používáme DirectAdmin s CloudLinux. V cPanelu se to často jmenuje MultiPHP Manager nebo Select PHP Version, v Plesku PHP Settings.
- Otevřete Select PHP version (pod Extra Programy).
- Klikněte na verzi u PHP version, vyberte novou verzi a klikněte na Apply.
- Zkontrolujte záložky Extensions a Options pro novou verzi.
- Zkontrolujte svůj web a chybový log. Pokud něco nefunguje, vyberte starou verzi a Apply.
Shrnutí
- Každá verze PHP dostává dva roky aktivní podpory a dva roky pouze bezpečnostních oprav, poté už žádné opravy. K 8. listopadu 2026 verze 8.1 už nedostává nic a 8.2 ještě do konce roku 2026.
- Upgrade láme hlavně staré pluginy a šablony; deprecated je varování, fatální chyba web zastaví.
- Pořadí: aktualizovat vše, zkontrolovat pluginy, záloha, otestovat v testovacím prostředí (staging), přepnout, hned zkontrolovat.
- Pokud se něco pokazí, vraťte starou verzi, najděte viníka v chybovém logu a vyřešte to; nezůstávejte trvale na staré verzi.
- U mnoha hosterů platí verze pro celý balíček; staré weby uklízejte.
Kvíz
Úkol
Úkol A8.4: Je Vaše verze PHP ještě podporovaná? V Nástroje > Stav webu (záložka Informace, Server) zjistěte, kterou verzi PHP Váš web používá, a zadejte ji spolu se svou doménou. Program porovná verzi se seznamem podporovaných verzí z php.net: zeleně při aktivní podpoře, oranžově při pouze bezpečnosti, červeně pokud už nepřicházejí žádné aktualizace. Pokud Váš server ukazuje verzi v hlavičce X-Powered-By, program zkontroluje také, zda odpovídá tomu, co jste zadali (a upozorní Vás, že je lepší tuto hlavičku skrýt, lekce 7.4).
Úkol D8.4: Plán upgradu. Napište plán upgradu svého webu na nejnovější verzi PHP, kterou nabízí Váš hoster. Vyplňte: aktuální a cílovou verzi, jaké máte pluginy a šablony a zda podporují cílovou verzi (s odkazem, kde jste to zjistili), kde budete testovat (testovací prostředí, jiný balíček, lokálně), jak se dá vrátit zpět a kdy to provedete. Pokud můžete, proveďte to a poznamenejte si, co se objevilo v chybovém logu.
Úkol D8.4: Plán upgradu
Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.
Zvolte cílovou verzi s aktivní podporou (nebo alespoň s bezpečnostními aktualizacemi) a u každého pluginu uveďte zdroj (stránka pluginu, changelog, Sitediagnose).
Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.
Další čtení
Tyto články popisují kroky v panelech WebOké; v jiných panelech fungují obdobně.
- Příručka k DirectAdmin 14.1: Výběr verze PHP (Select PHP version)
- Příručka k DirectAdmin 14.6: Chyby po upgradu PHP a nalezení logu chyb
- Změna verze PHP a nastavení PHP (a co dělat v případě chyb po upgradu)
- Příručka k DirectAdmin 14.2: Zapínání a vypínání PHP rozšíření
- Příručka WebOké 6.11: Nechat provést upgrade PHP
- Podporované verze PHP (php.net, v angličtině): https://www.php.net/supported-versions.php
- PHP a verze WordPressu (make.wordpress.org, v angličtině): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
