Modul 8 · 8.4
Različice PHP in nadgradnje
Modul 8: Varnostne kopije, testno okolje (staging) in nadgradnje PHP · Čas branja: 10 minut
Učni cilj: Po tej lekciji boste znali varno pripraviti, izvesti in po potrebi razveljaviti nadgradnjo PHP.
Ključni pojmi: življenjski cikel PHP (aktivna podpora, samo varnost, konec), združljivost WordPressa, teme in vtičnikov, zastarelo (deprecated), opozorilo, usodna napaka, Zdravje spletišča, dnevnik napak, testno okolje (staging), obnovitev, naročilo nadgradnje
Zakaj so različice PHP pomembne
WordPress, Vaša tema in Vaši vtičniki so napisani v PHP (lekcija 1.2). Vsako leto izide nova različica PHP (8.3, 8.4, 8.5, ...). Vsaka različica se vzdržuje določen čas:
- aktivna podpora: dve leti popravkov napak in varnostnih popravkov;
- samo varnost: nato še dve leti samo varnostnih popravkov;
- konec (end of life): ni več popravkov, tudi ne za varnostne luknje.
Stanje na dan 8. november 2026, po podatkih php.net:
| Različica | Varnostne posodobitve do | Stanje |
|---|---|---|
| 8.1 in starejše | (mimo) | Ni več posodobitev |
| 8.2 | 31. december 2026 | Samo varnost, skoraj konec |
| 8.3 | 31. december 2027 | Samo varnost |
| 8.4 | 31. december 2028 | Aktivna |
| 8.5 | 31. december 2029 | Aktivna |
Spletno mesto na različici brez posodobitev deluje na programski opremi z znanimi varnostnimi luknjami, ki se ne popravljajo več. Poleg tega so novejše različice opazno hitrejše (lekcija 6.3). In wordpress.org priporoča PHP 8.3 ali novejši (stanje november 2026). Namen je torej vsako leto ostati posodobljen, ne pa enkrat na pet let narediti velik skok.
Zakaj lahko nadgradnja kaj pokvari
Vsaka nova različica PHP nekaj spremeni. Funkcije, ki so bile že leta označene kot zastarele (deprecated), se odstranijo, pravila pa postanejo strožja. Nekaj znanih primerov:
- PHP 8.0 je med drugim odstranil
create_function()ineach(), mnoga opozorila pa so postala napake; - PHP 8.2 je dinamično ustvarjanje lastnosti na objektih označil kot zastarelo, kar je pogosto pri starejših vtičnikih.
Obstajajo tri vrste sporočil, razlika pa je pomembna:
| Sporočilo | Pomen | Posledica |
|---|---|---|
| Deprecated (zastarelo) | "To še deluje, vendar bo izginilo v naslednji različici" | Nič vidnega, opozorilo za prihodnost |
| Warning ali Notice | Nekaj ni povsem v redu | Večinoma nič vidnega, včasih se del spletnega mesta obnaša čudno |
| Fatal error | PHP se ustavi | Bela stran ali "kritična napaka" (lekcija 5.4) |
WordPress sam se večinoma dobro prilagaja novim različicam PHP. Tveganje je pri starih vtičnikih in temah, še posebej če dolgo niso bili posodobljeni ali so izdelani po meri.
Kako najti svojo trenutno različico
- V WordPressu: Orodja > Zdravje spletišča, zavihek Informacije, pod Strežnik: različica PHP. Zdravje spletišča opozori tudi, če je Vaša različica zastarela.
- V Vaši nadzorni plošči gostovanja: pri DirectAdmin s CloudLinux v Select PHP version (z oznako "(current)" za trenutno različico).
- Včasih strežnik to razkrije v glavi
X-Powered-By: PHP/8.3.x. Raje ne (lekcija 7.4), a če je tam, je hitro vidno.
Pozor: pri mnogih ponudnikih gostovanja velja različica PHP za Vaš celoten paket, torej za vsa spletna mesta v njem. Staro spletno mesto v istem paketu Vas lahko zadrži. To je dodaten razlog za čiščenje starih spletnih mest ali dodelitev lastnega paketa.
Nadgradnja: korak za korakom
- Najprej posodobite. Posodobite WordPress, Vašo temo in vse vtičnike na trenutni različici PHP. S tem je rešen velik del težav, saj avtorji prilagajajo kodo za nove različice PHP.
- Preverite, kaj pravijo Vaši vtičniki. Na strani vtičnika na wordpress.org je navedena zahtevana različica PHP; v dnevniku sprememb (changelog) pogosto piše "compatible with PHP 8.x". Vtičnik, ki že leta ni bil posodobljen (lekcija 5.3), je kandidat za zamenjavo.
- Izdelajte varnostno kopijo (lekcija 8.1).
- Testirajte v testnem okolju (staging) (lekcija 8.3). Če Vam ponudnik gostovanja omogoča drugo različico PHP za posamezno spletno mesto, nastavite testno okolje na novo različico. Če to ni mogoče (ena različica na paket), testirajte v testnem okolju v drugem paketu, lokalno, ali izberite miren trenutek na produkciji s staro različico pripravljeno za obnovitev.
- Preklop: izberite novo različico v svoji nadzorni plošči. Pri DirectAdmin s CloudLinux jo izberete v Select PHP version in kliknete Apply; brez klika na Apply se nič ne spremeni.
- Takoj preverite: odprite svoje spletno mesto in preklikajte nekaj strani, tudi skrbništvo, obrazec in (pri trgovini) postopek plačila. V dnevniku napak (lekcija 5.4) poiščite nove vrstice
PHP Fatal error. - Razširitve in nastavitve: pri nekaterih ponudnikih gostovanja so razširitve PHP in možnosti (kot je
memory_limit) vezane na različico. Po preklopu preverite, ali so pri novi različici pravilno nastavljene.
Če gre kaj narobe
- Usodna napaka: obnovite staro različico (to je pri večini ponudnikov gostovanja mogoče takoj), da spletno mesto spet deluje. V dnevniku napak poiščite, kateri vtičnik ali tema je bil kriv (pot je navedena v sporočilu o napaki), posodobite ga, zamenjajte ali prosite avtorja za rešitev. Nato poskusite znova.
- Samo sporočila deprecated: ni razloga za vrnitev. Vendar je to opozorilo: pri naslednji različici lahko postane napaka. Zabeležite, kateri vtičnik je v vprašanju.
- Koda po meri, ki ne deluje več: staro spletno mesto, ki ga je izdelal izdelovalec spletnih strani, lahko vsebuje kodo, ki je nihče več ne vzdržuje. Takrat mora to kodo prilagoditi nekdo, ki pozna PHP. Nekateri ponudniki gostovanja, tudi WebOké, ponujajo, da to naredijo namesto Vas.
Ne puščajte spletnega mesta "za vedno" na stari različici, ker en vtičnik ne sledi. To je le odlašanje težave, ki se vsako leto povečuje.
Več gotovosti vnaprej
Za tiste, ki želijo iti dlje: z orodjem PHP_CodeSniffer in pravili PHPCompatibilityWP lahko kodo svojih vtičnikov in tem preverite glede stvari, ki ne delujejo v novejši različici PHP, ne da bi spletno mesto sploh zagnali. S tem najdete veliko, a ne vsega. Testiranje v testnem okolju ostaja potrebno.
V praksi: tako je videti v nadzorni plošči
Kot primer uporabljamo DirectAdmin s CloudLinux. V cPanel se to pogosto imenuje MultiPHP Manager ali Select PHP Version, v Plesku PHP Settings.
- Odprite Select PHP version (pod Extra Features).
- Kliknite na različico pri PHP version, izberite novo različico in kliknite Apply.
- Preverite zavihka Extensions in Options za novo različico.
- Preverite svoje spletno mesto in dnevnik napak. Če kaj ne deluje, izberite staro različico in Apply.
Povzetek
- Vsaka različica PHP dobi dve leti aktivne podpore in dve leti samo varnostnih popravkov; nato ni več popravkov. Na dan 8. november 2026 različica 8.1 ne dobi več ničesar, 8.2 pa do konca leta 2026.
- Nadgradnja predvsem pokvari stare vtičnike in teme; deprecated je opozorilo, fatal error ustavi spletno mesto.
- Vrstni red: vse posodobite, preverite vtičnike, naredite varnostno kopijo, testirajte v testnem okolju, preklopite, takoj preverite.
- Če gre kaj narobe, obnovite staro različico, poiščite krivca v dnevniku napak in rešite težavo; ne ostanite trajno na stari različici.
- Pri mnogih ponudnikih gostovanja velja različica za cel paket; počistite stara spletna mesta.
Kviz
Naloga
Naloga A8.4: Je Vaša različica PHP še podprta? V Orodja > Zdravje spletišča (zavihek Informacije, Strežnik) preverite, katero različico PHP uporablja Vaše spletno mesto, in jo vnesite skupaj z domeno. Program primerja različico s seznamom podprtih različic na php.net: zeleno pri aktivni podpori, oranžno pri samo varnosti, rdeče, če posodobitev ni več. Če Vaš strežnik prikazuje različico v glavi X-Powered-By, program preveri tudi, ali se ta ujema z vnesenim podatkom (in Vas opozori, da je to glavo bolje skriti, lekcija 7.4).
Naloga D8.4: Načrt nadgradnje. Napišite načrt za nadgradnjo svojega spletnega mesta na najnovejšo različico PHP, ki jo ponuja Vaš ponudnik gostovanja. Vnesite: trenutno in ciljno različico, katere vtičnike in teme imate ter ali podpirajo ciljno različico (z navedbo, kje ste to prebrali), kje boste testirali (testno okolje, drug paket, lokalno) in kako se lahko vrnete nazaj, ter kdaj boste to izvedli. Izvedite, če lahko, in zabeležite, kaj se je pojavilo v dnevniku napak.
Naloga D8.4: Načrt nadgradnje
To nalogo opravite sami; nihče je ne pregleda. Odkljukajte, kar ste naredili, in nalogo označite kot opravljeno.
Izberite ciljno različico z aktivno podporo (ali vsaj še z varnostnimi posodobitvami) in za vsak vtičnik navedite vir (stran vtičnika, changelog, Diagnostika spletnega mesta).
Vaše kljukice in zapiski ostanejo samo v tem brskalniku, nikamor jih ne pošiljamo. Če ste prijavljeni, v Moji tečaji shranimo samo podatek, da ste nalogo opravili.
Dodatno branje
Ti članki opisujejo korake v nadzornih ploščah WebOké; v drugih nadzornih ploščah delujejo podobno.
- Priročnik DirectAdmin 14.1: Izbira različice PHP (Select PHP version)
- Priročnik DirectAdmin 14.6: Napake po nadgradnji PHP in iskanje dnevnika napak
- Spreminjanje različice PHP in nastavitev PHP (ter kaj storiti v primeru napak po nadgradnji)
- Priročnik DirectAdmin 14.2: PHP-razširitve vklop in izklop
- Priročnik WebOké 6.11: Naročilo nadgradnje PHP
- Podprte različice PHP (php.net, angleško): https://www.php.net/supported-versions.php
- PHP in različice WordPressa (make.wordpress.org, angleško): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
