8 modulis · 8.4
PHP versijos ir atnaujinimai
8 modulis: Atsarginės kopijos, bandomoji aplinka (staging) ir PHP atnaujinimai · Skaitymo trukmė: 10 min.
Mokymosi tikslas: Po šios pamokos galėsite saugiai pasiruošti PHP versijos atnaujinimui, jį atlikti ir prireikus atšaukti.
Pagrindinės sąvokos: PHP gyvavimo ciklas (aktyvus palaikymas, tik saugumas, pabaiga), WordPress, temos ir įskiepių suderinamumas, pasenęs (deprecated), įspėjimas, lemtinga klaida, Tinklalapio būklė, klaidų žurnalas, bandomoji aplinka (staging), atkūrimas, atnaujinimo užsakymas
Kodėl PHP versijos yra svarbios
WordPress, Jūsų tema ir įskiepiai yra parašyti PHP kalba (1.2 pamoka). Kiekvienais metais išleidžiama nauja PHP versija (8.3, 8.4, 8.5, ...). Kiekviena versija prižiūrima nustatytą laiką:
- aktyvus palaikymas: dveji metai klaidų ir saugumo taisymų;
- tik saugumas: po to dar dveji metai tik saugumo taisymų;
- pabaiga (end of life): taisymų nebelieka, net ir saugumo spragoms.
Padėtis 2026 m. lapkričio 8 d., pagal php.net:
| Versija | Saugumo atnaujinimai iki | Būsena |
|---|---|---|
| 8.1 ir senesnė | (pasibaigę) | Atnaujinimų nebeliko |
| 8.2 | 2026 m. gruodžio 31 d. | Tik saugumas, beveik pabaiga |
| 8.3 | 2027 m. gruodžio 31 d. | Tik saugumas |
| 8.4 | 2028 m. gruodžio 31 d. | Aktyvi |
| 8.5 | 2029 m. gruodžio 31 d. | Aktyvi |
Svetainė, veikianti versijoje be atnaujinimų, naudoja programinę įrangą su žinomomis saugumo spragomis, kurios nebebus taisomos. Be to, naujesnės versijos yra pastebimai greitesnės (6.3 pamoka), o wordpress.org rekomenduoja PHP 8.3 arba naujesnę versiją (padėtis 2026 m. lapkričio mėn.). Taigi tikslas yra atnaujinti kasmet, o ne kartą per penkerius metus daryti didelį šuolį.
Kodėl atnaujinimas gali ką nors sugadinti
Kiekviena nauja PHP versija kažką pakeičia. Funkcijos, kurios jau metų metus buvo pažymėtos kaip pasenusios (deprecated), pašalinamos, o taisyklės griežtėja. Keli žinomi pavyzdžiai:
- PHP 8.0 pašalino, be kita ko,
create_function()ireach(), o daug įspėjimų tapo klaidomis; - PHP 8.2 pažymėjo dinaminį savybių kūrimą objektuose kaip pasenusį, o tai dažnai pasitaiko senesniuose įskiepiuose.
Yra trys pranešimų tipai, ir skirtumas tarp jų yra svarbus:
| Pranešimas | Reikšmė | Pasekmė |
|---|---|---|
| Deprecated (pasenęs) | „Tai dar veikia, bet bus pašalinta kitoje versijoje“ | Nieko matomo; įspėjimas ateičiai |
| Warning arba Notice | Kažkas ne visai tvarkinga | Dažniausiai nieko matomo, kartais kažkuri dalis veikia keistai |
| Fatal error | PHP sustoja | Baltas puslapis arba „kritinė klaida“ (5.4 pamoka) |
Pats WordPress paprastai gerai prisitaiko prie naujų PHP versijų. Rizika slypi senuose įskiepiuose ir temose, ypač jei jie ilgą laiką nebuvo atnaujinti arba yra individualiai pritaikyti.
Dabartinės versijos radimas
- WordPress skydelyje: Įrankiai > Tinklalapio būklė, skirtukas Informacija, po Serveris: PHP versija. Tinklalapio būklė taip pat įspėja, jei Jūsų versija yra pasenusi.
- Jūsų talpinimo valdymo skydelyje: „DirectAdmin“ su „CloudLinux“ skiltyje Select PHP version (su užrašu „(current)“ šalia dabartinės versijos).
- Kartais serveris tai atskleidžia antraštėje
X-Powered-By: PHP/8.3.x. Geriau, kad jos nebūtų (7.4 pamoka), bet jei ji yra, informaciją rasti lengva.
Atkreipkite dėmesį: daugelyje talpinimo paslaugų PHP versija taikoma visam Jūsų paketui, taigi visoms jame esančioms svetainėms. Sena svetainė tame pačiame pakete gali Jus sustabdyti. Tai papildoma priežastis susitvarkyti senas svetaines arba joms skirti atskirą paketą.
Atnaujinimas žingsnis po žingsnio
- Pirmiausia atnaujinkite. Atnaujinkite WordPress, savo temą ir visus įskiepius iki dabartinei PHP versijai. Didelė dalis problemų tokiu būdu jau išspręsta, nes kūrėjai pritaiko savo kodą naujoms PHP versijoms.
- Pažiūrėkite, ką sako Jūsų įskiepiai. wordpress.org įskiepio puslapyje nurodyta reikalaujama PHP versija; pakeitimų žurnale (changelog) dažnai rašoma „compatible with PHP 8.x“. Įskiepis, kuris jau metų metus nebuvo atnaujintas (5.3 pamoka), yra kandidatas pakeitimui.
- Sukurkite atsarginę kopiją (8.1 pamoka).
- Išbandykite bandomojoje aplinkoje (staging) (8.3 pamoka). Jei Jūsų talpinimo paslaugų teikėjas leidžia kiekvienai svetainei nustatyti atskirą PHP versiją, nustatykite bandomajai aplinkai naują versiją. Jei taip padaryti negalima (viena versija visam paketui), išbandykite bandomojoje aplinkoje kitame pakete, vietinėje (local) aplinkoje, arba pasirinkite ramų momentą gamybinėje aplinkoje, turėdami paruoštą seną versiją atkūrimui.
- Perkėlimas: pasirinkite naują versiją savo valdymo skydelyje. „DirectAdmin“ su „CloudLinux“ ją pasirenkate skiltyje Select PHP version ir spustelėkite Apply; be Apply paspaudimo niekas nepasikeis.
- Iškart patikrinkite: atidarykite savo svetainę ir peržiūrėkite kelis puslapius, taip pat skydelį, formą ir (jei tai parduotuvė) atsiskaitymo procesą. Peržiūrėkite klaidų žurnalą (5.4 pamoka) ieškodami naujų
PHP Fatal erroreilučių. - Plėtiniai ir nustatymai: kai kuriuose talpinimo paslaugose PHP plėtiniai ir parinktys (pvz.,
memory_limit) priklauso nuo versijos. Po perjungimo patikrinkite, ar jie tinkamai nustatyti naujai versijai.
Jei kas nors nutinka ne taip
- Lemtinga klaida: grąžinkite seną versiją (daugelyje talpinimo paslaugų tai galima atlikti iškart), kad Jūsų svetainė vėl veiktų. Klaidų žurnale raskite, kuris įskiepis ar tema buvo priežastis (kelias nurodytas klaidos pranešime), atnaujinkite jį, pakeiskite kitu arba paprašykite kūrėjo sprendimo. Po to bandykite dar kartą.
- Tik pasenimo (deprecated) pranešimai: nėra priežasties grįžti. Bet tai įspėjimas: kitoje versijoje tai gali tapti klaida. Užsirašykite, koks tai įskiepis.
- Individualiai pritaikytas kodas, kuris nebeveikia: sena svetainė, sukurta svetainių kūrėjo, gali turėti kodo, kurio niekas nebeprižiūri. Tokiu atveju tą kodą turi pritaikyti kas nors, išmanantis PHP. Kai kurie talpinimo paslaugų teikėjai, taip pat WebOké, siūlo tai padaryti už Jus.
Nepalikite svetainės „visam laikui“ senoje versijoje vien todėl, kad vienas įskiepis nespėja prisitaikyti. Tai tik problemos, kuri kasmet auga, atidėjimas.
Daugiau užtikrintumo iš anksto
Norintiems žengti toliau: su PHP_CodeSniffer ir PHPCompatibilityWP taisyklėmis galite patikrinti savo įskiepių ir temų kodą dėl dalykų, kurie neveiks naujesnėje PHP versijoje, net nepaleidus svetainės. Tai aptinka daug, bet ne viską. Testavimas bandomojoje aplinkoje vis tiek būtinas.
Praktikoje: kaip tai atrodo valdymo skydelyje
Kaip pavyzdį naudojame „DirectAdmin“ su „CloudLinux“. „cPanel“ tai dažnai vadinama „MultiPHP Manager“ arba „Select PHP Version“, „Plesk“ tai „PHP Settings“.
- Atidarykite Select PHP version (skiltyje Extra Programos).
- Spustelėkite versiją ties PHP version, pasirinkite naują versiją ir spustelėkite Apply.
- Patikrinkite skirtukus Extensions ir Options naujai versijai.
- Patikrinkite savo svetainę ir klaidų žurnalą. Jei kas nors neveikia, pasirinkite seną versiją ir Apply.
Santrauka
- Kiekviena PHP versija gauna dvejus metus aktyvaus palaikymo ir dvejus metus tik saugumo palaikymo; po to taisymų nebelieka. 2026 m. lapkričio 8 d. versija 8.1 nebegaus nieko, o 8.2 bus palaikoma iki 2026 m. pabaigos.
- Atnaujinimas dažniausiai sugadina senus įskiepius ir temas; deprecated yra įspėjimas, o fatal error sustabdo svetainę.
- Eiliškumas: viską atnaujinti, patikrinti įskiepius, atsarginė kopija, testavimas bandomojoje aplinkoje, perkėlimas, iškart patikrinti.
- Jei kas nors nutinka ne taip, grąžinkite seną versiją, klaidų žurnale raskite kaltininką ir išspręskite problemą; neužsibūkite senoje versijoje.
- Daugelyje talpinimo paslaugų versija taikoma visam paketui; sutvarkykite senas svetaines.
Testas (quiz)
Užduotis
Užduotis A8.4: Ar Jūsų PHP versija vis dar palaikoma? Pažiūrėkite skiltyje Įrankiai > Tinklalapio būklė (skirtukas Informacija, Serveris), kokią PHP versiją naudoja Jūsų svetainė, ir įveskite ją kartu su savo domenu. Programa palygina versiją su php.net palaikomų versijų sąrašu: žalia reiškia aktyvų palaikymą, oranžinė tik saugumą, raudona kad atnaujinimų nebeliks. Jei Jūsų serveris rodo versiją antraštėje X-Powered-By, programa taip pat patikrina, ar ji sutampa su tuo, ką įvedėte (ir praneša, kad geriau tą antraštę paslėpti, 7.4 pamoka).
Užduotis D8.4: Atnaujinimo planas. Parašykite planą savo svetainės atnaujinimui iki naujausios PHP versijos, kurią siūlo Jūsų talpinimo paslaugų teikėjas. Įrašykite: dabartinę ir siekiamą versiją, kokius įskiepius ir temas turite ir ar jie palaiko siekiamą versiją (su nuoroda, kur tai perskaitėte), kur testuosite (bandomojoje aplinkoje, kitame pakete, vietinėje (local) aplinkoje), kaip galėsite grįžti atgal, ir kada tai atliksite. Įvykdykite, jei galite, ir užsirašykite, kas pasirodė klaidų žurnale.
Užduotis D8.4: Atnaujinimo planas
Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.
Pasirinkite tikslinę versiją su aktyviu palaikymu (arba bent jau dar gaunančią saugumo atnaujinimus) ir kiekvienam įskiepiui nurodykite šaltinį (įskiepio puslapis, pakeitimų žurnalas, Svetainės diagnostika).
Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.
Papildoma literatūra
Šie straipsniai aprašo veiksmus WebOké valdymo skydeliuose; kituose valdymo skydeliuose jie veikia panašiai.
- DirectAdmin vadovas 14.1: PHP versijos pasirinkimas (Select PHP version)
- DirectAdmin vadovas 14.6: Klaidos po PHP versijos atnaujinimo ir klaidų žurnalo radimas
- PHP versijos ir PHP nustatymų keitimas (ir ką daryti, jei po atnaujinimo atsiranda klaidų)
- DirectAdmin vadovas 14.2: PHP plėtinių įjungimas ir išjungimas
- WebOké vadovas 6.11: PHP atnaujinimo užsakymas
- Palaikomos PHP versijos (php.net, anglų kalba): https://www.php.net/supported-versions.php
- PHP ir WordPress versijos (make.wordpress.org, anglų kalba): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
