Modul 8 · 8.4
PHP-verziók és frissítések
Modul 8: Biztonsági mentések, tesztkörnyezet és PHP-frissítések · Olvasási idő: 10 perc
Tanulási cél: E lecke után biztonságosan elő tudja készíteni, végre tudja hajtani, és szükség esetén vissza tudja vonni a PHP-frissítést.
Kulcsfogalmak: a PHP életciklusa (aktív támogatás, csak biztonsági javítások, életciklus vége), WordPress, sablon és bővítmények kompatibilitása, elavult (deprecated), figyelmeztetés, végzetes hiba, Webhely Egészség, hibanapló, tesztkörnyezet (staging), visszaállítás, frissítés elvégeztetése
Miért számítanak a PHP-verziók
A WordPress, a sablonja és a bővítményei PHP nyelven íródtak (1.2 lecke). A PHP-ből minden évben megjelenik egy új verzió (8.3, 8.4, 8.5 stb.). Minden verziót egy meghatározott ideig tartanak karban:
- aktív támogatás: két évig hiba- és biztonsági javítások;
- csak biztonsági javítások: ezután még két évig csak biztonsági javítások;
- életciklus vége (end of life): nincs több javítás, a biztonsági réseket sem javítják.
Az állapot 2026. november 8-án, a php.net szerint:
| Verzió | Biztonsági frissítések eddig | Állapot |
|---|---|---|
| 8.1 és régebbi | (lejárt) | Nincs több frissítés |
| 8.2 | 2026. december 31. | Csak biztonsági javítások, hamarosan vége |
| 8.3 | 2027. december 31. | Csak biztonsági javítások |
| 8.4 | 2028. december 31. | Aktív |
| 8.5 | 2029. december 31. | Aktív |
Egy olyan verzión futó weboldal, amely már nem kap frissítést, ismert, de már nem javított biztonsági résekkel rendelkező szoftvert futtat. Emellett az újabb verziók érezhetően gyorsabbak (6.3 lecke). A wordpress.org pedig a PHP 8.3-at vagy újabbat ajánlja (2026 novemberi állapot szerint). A cél tehát az, hogy évente lépjen egyet, ne pedig ötévente egyszer nagyot ugorjon.
Miért törhet el valamit egy frissítés
Minden új PHP-verzió változtat valamin. A már évek óta elavultnak (deprecated) jelölt funkciókat eltávolítják, és a szabályok szigorodnak. Néhány ismert példa:
- A PHP 8.0 többek között eltávolította a
create_function()éseach()funkciókat, és sok figyelmeztetés hibává vált; - A PHP 8.2 elavultnak jelölte az objektumokon történő dinamikus tulajdonság-létrehozást, ami régebbi bővítményekben gyakran előfordul.
Háromféle üzenet létezik, és a köztük lévő különbség fontos:
| Üzenet | Jelentés | Következmény |
|---|---|---|
| Deprecated (elavult) | „Ez még működik, de egy következő verzióban megszűnik” | Semmi látható nem történik; figyelmeztetés a jövőre nézve |
| Warning vagy Notice | Valami nem egészen stimmel | Többnyire semmi látható, néha egy elem furcsán viselkedik |
| Fatal error (végzetes hiba) | A PHP leáll | Fehér oldal vagy „kritikus hiba” (5.4 lecke) |
Maga a WordPress általában jól együtt halad az új PHP-verziókkal. A kockázat a régi bővítményekben és sablonokban rejlik, különösen ha régóta nem frissítették őket, vagy egyedi fejlesztésűek.
A jelenlegi verzió megkeresése
- A WordPressben: Eszközök > Webhely Egészség, Info fül, a Kiszolgáló résznél: a PHP-verzió. A Webhely Egészség figyelmeztet is, ha a verziója elavult.
- A tárhelykezelő felületén: CloudLinuxszal rendelkező DirectAdmin esetén a Select PHP version menüpontban (a jelenlegi verzió mellett „(current)” szerepel).
- Néha a kiszolgáló elárulja az
X-Powered-By: PHP/8.3.xfejlécben. Inkább ne így legyen (7.4 lecke), de ha ott van, gyorsan megállapítható belőle.
Figyelem: sok tárhelyszolgáltatónál a PHP-verzió az egész csomagra vonatkozik, tehát minden azon belüli weboldalra. Egy régi weboldal ugyanabban a csomagban visszatarthatja Önt. Ez egy újabb ok arra, hogy rendet tegyen a régi weboldalak között, vagy saját csomagot adjon nekik.
A frissítés lépésről lépésre
- Először frissítsen. Frissítse a WordPresst, a sablonját és az összes bővítményét a jelenlegi PHP-verzión. A problémák nagy része így már megoldódik, mivel a fejlesztők a kódjukat az új PHP-verziókhoz igazítják.
- Nézze meg, mit mondanak a bővítményei. A wordpress.org bővítményoldalán szerepel a szükséges PHP-verzió; a változásnaplóban gyakran szerepel: „compatible with PHP 8.x”. Egy bővítmény, amelyet évek óta nem frissítettek (5.3 lecke), jelölt a lecserélésre.
- Biztonsági mentés készítése (8.1 lecke).
- Tesztelés tesztkörnyezetben (8.3 lecke). Ha a tárhelyszolgáltatója weboldalanként eltérő PHP-verziót tud adni, akkor a tesztkörnyezetet állítsa az új verzióra. Ha ez nem lehetséges (csomagonként egy verzió), akkor teszteljen egy másik csomagban lévő tesztkörnyezeten, helyben (lokálisan), vagy válasszon egy nyugodt időpontot az éles weboldalon, miközben a régi verzió készen áll a visszaállításra.
- Átváltás: válassza ki az új verziót a kezelőfelületén. CloudLinuxszal rendelkező DirectAdmin esetén válassza ki a Select PHP version menüben, majd kattintson az Apply gombra; Apply nélkül semmi nem változik.
- Azonnali ellenőrzés: nyissa meg a weboldalát, és kattintson végig néhány oldalon, beleértve a vezérlőpultot, egy űrlapot, és (webáruház esetén) a fizetési folyamatot. Nézze meg a hibanaplóban (5.4 lecke) az új
PHP Fatal errorsorokat. - Kiegészítők és beállítások: egyes tárhelyszolgáltatóknál a PHP-kiegészítők és -beállítások (mint például a
memory_limit) verzióhoz kötöttek. A váltás után ellenőrizze, hogy ezek megfelelően vannak-e beállítva az új verzióhoz.
Ha valami elromlik
- Végzetes hiba: állítsa vissza a régi verziót (ez a legtöbb tárhelyszolgáltatónál azonnal megtehető), hogy a weboldala ismét működjön. Keresse meg a hibanaplóban, melyik bővítmény vagy sablon okozta a problémát (az elérési út szerepel a hibaüzenetben), frissítse azt, cserélje le, vagy kérjen megoldást a fejlesztőjétől. Ezután próbálja újra.
- Csak deprecated üzenetek: nincs ok a visszaállásra. De ez egy figyelmeztetés: a következő verziónál már hiba lehet belőle. Jegyezze fel, melyik bővítményről van szó.
- Egyedi fejlesztés, amely már nem működik: egy régi weboldal, amelyet egy webfejlesztő készített, tartalmazhat olyan kódot, amelyet már senki sem tart karban. Ezt a kódot valakinek módosítania kell, aki ért a PHP-hez. Egyes tárhelyszolgáltatók, köztük a WebOké is, felajánlják, hogy ezt elvégzik Ön helyett.
Ne hagyjon egy weboldalt „örökre” egy régi verzión csak azért, mert egy bővítmény nem bírja a váltást. Ez csupán egy olyan probléma elhalasztása, amely minden évben nagyobb lesz.
Nagyobb biztonság előre
Aki szeretné tovább vizsgálni: a PHP_CodeSniffer és a PHPCompatibilityWP szabályai segítségével a bővítményei és sablonjai kódját átvizsgáltathatja olyan elemek után, amelyek nem működnek egy újabb PHP-verzióban, anélkül, hogy a weboldalt futtatná. Ez sok, de nem minden problémát megtalál. A tesztelés tesztkörnyezetben továbbra is szükséges.
A gyakorlatban: így néz ki egy kezelőfelületen
Példaként a CloudLinuxszal rendelkező DirectAdmint használjuk. A cPanelben ez gyakran MultiPHP Manager vagy Select PHP Version néven szerepel, a Pleskben pedig PHP Settings néven.
- Nyissa meg a Select PHP version menüpontot (az Extra Programok alatt).
- Kattintson a verzióra a PHP version résznél, válassza ki az új verziót, majd kattintson az Apply gombra.
- Ellenőrizze az Extensions és Options füleket az új verzióhoz.
- Ellenőrizze a weboldalát és a hibanaplót. Ha valami nem működik, válassza a régi verziót, és kattintson az Apply gombra.
Összefoglalás
- Minden PHP-verzió két évig aktív támogatást kap, majd két évig csak biztonsági javításokat; ezután nincs több javítás. 2026. november 8-án a 8.1 már semmit nem kap, a 8.2 pedig még 2026 végéig.
- Egy frissítés elsősorban a régi bővítményeket és sablonokat töri el; a deprecated egy figyelmeztetés, a fatal error leállítja a weboldalt.
- Sorrend: mindent frissíteni, bővítményeket ellenőrizni, biztonsági mentés, tesztelés tesztkörnyezetben, átváltás, azonnali ellenőrzés.
- Ha valami elromlik, állítsa vissza a régi verziót, keresse meg a bűnöst a hibanaplóban, és oldja meg a problémát; ne ragadjon le egy régi verziónál.
- Sok tárhelyszolgáltatónál a verzió az egész csomagra vonatkozik; rendezze a régi weboldalakat.
Kvíz
Feladat
A8.4 feladat: Támogatott még a PHP-verziója? Nézze meg az Eszközök > Webhely Egészség (Info fül, Kiszolgáló) menüpontban, hogy weboldala melyik PHP-verziót használja, és adja meg azt a domainjével együtt. A program összehasonlítja a verziót a php.net támogatott verziók listájával: zöld az aktív támogatás esetén, narancssárga, ha csak biztonsági javítások érkeznek, piros, ha már nincs több frissítés. Ha a kiszolgálója megmutatja a verziót az X-Powered-By fejlécben, a program azt is ellenőrzi, hogy ez megegyezik-e a megadottal (és jelzi, hogy érdemes elrejteni ezt a fejlécet, 7.4 lecke).
D8.4 feladat: Frissítési terv. Írjon tervet a weboldala frissítéséhez a tárhelyszolgáltatója által kínált legújabb PHP-verzióra. Töltse ki: jelenlegi és célverzió, mely bővítményei és sablonjai vannak, és ezek támogatják-e a célverziót (azzal, hogy hol olvasta ezt), hol tesztel (tesztkörnyezet, másik csomag, helyi gép), hogyan tud visszaállni, és mikor végzi el. Hajtsa végre, ha teheti, és jegyezze fel, mi jelent meg a hibanaplóban.
D8.4. feladat: Frissítési terv
Ezt a feladatot saját maga végzi el, senki nem ellenőrzi. Pipálja ki, amit elvégzett, és jelölje meg a feladatot elvégzettként.
Válasszon egy célverziót, amelyhez még van aktív támogatás (vagy legalább még biztonsági frissítéseket kap), és minden bővítménynél nevezzen meg egy forrást (bővítmény oldala, changelog, Oldaldiagnosztika).
A pipái és jegyzetei csak ebben a böngészőben maradnak meg, sehova nem küldjük el őket. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy elvégezte a feladatot.
További olvasnivaló
Ezek a cikkek a WebOké kezelőfelületein végzett lépéseket írják le; más kezelőfelületeken hasonlóan működnek.
- DirectAdmin útmutató 14.1: A PHP-verzió kiválasztása (Select PHP version)
- DirectAdmin útmutató 14.6: Hibák PHP-frissítés után és a hibanapló megkeresése
- PHP verzió és PHP beállítások módosítása (és mi a teendő, ha hibák jelentkeznek egy frissítés után)
- DirectAdmin útmutató 14.2: PHP-bővítmények be- és kikapcsolása
- WebOké útmutató 6.11: PHP-frissítés elvégeztetése
- Támogatott PHP-verziók (php.net, angol nyelven): https://www.php.net/supported-versions.php
- PHP és WordPress-verziók (make.wordpress.org, angol nyelven): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
