Moodul 8 · 8.4
PHP versioonid ja uuendused
Moodul 8: Varukoopiad, testkeskkond (staging) ja PHP uuendused · Lugemisaeg: 10 minutit
Õpieesmärk: Pärast seda õppetundi oskad PHP uuenduse turvaliselt ette valmistada, teostada ja vajadusel tagasi pöörata.
Põhimõisted: PHP elutsükkel (aktiivne tugi, ainult turvalisus, lõpp), WordPressi, teema ja pluginate ühilduvus, aegunud (deprecated), hoiatus, saatuslik viga (fatal error), Saidi tervis, vealogi, testkeskkond (staging), taastamine, uuenduse tellimine
Miks PHP versioonid on olulised
WordPress, su teema ja su pluginad on kirjutatud PHP-s (õppetund 1.2). PHP-st ilmub igal aastal uus versioon (8.3, 8.4, 8.5, ...). Iga versiooni hooldatakse kindla aja jooksul:
- aktiivne tugi: kaks aastat viga- ja turvaparandusi;
- ainult turvalisus: seejärel veel kaks aastat ainult turvaparandusi;
- lõpp (end of life): enam parandusi ei tule, ka mitte turvaaukude puhul.
Seis 8. novembril 2026, php.net andmetel:
| Versioon | Turvauuendused kuni | Seis |
|---|---|---|
| 8.1 ja vanemad | (möödas) | Enam uuendusi ei tule |
| 8.2 | 31. detsember 2026 | Ainult turvalisus, peagi lõpeb |
| 8.3 | 31. detsember 2027 | Ainult turvalisus |
| 8.4 | 31. detsember 2028 | Aktiivne |
| 8.5 | 31. detsember 2029 | Aktiivne |
Sait, mis töötab uuendusteta versioonil, kasutab tarkvara, milles on teadaolevad turvaaugud, mida enam ei parandata. Lisaks on uuemad versioonid märgatavalt kiiremad (õppetund 6.3). Ja wordpress.org soovitab PHP 8.3 või uuemat versiooni (seis novembris 2026). Seega on mõte iga aasta ajakohasena püsida, mitte kord viie aasta jooksul suurt hüpet teha.
Miks uuendus võib midagi katki teha
Iga uus PHP versioon muudab midagi. Funktsioonid, mis on juba aastaid olnud märgitud aegunuks (deprecated), eemaldatakse ning reeglid muutuvad rangemaks. Mõned tuntud näited:
- PHP 8.0 eemaldas muuhulgas
create_function()jaeach()ning paljud hoiatused muutusid vigadeks; - PHP 8.2 märkis objektidel omaduste dünaamilise loomise aegunuks, mida esineb palju vanemates pluginates.
On kolme tüüpi teateid ning vahe on oluline:
| Teade | Tähendus | Tagajärg |
|---|---|---|
| Deprecated (aegunud) | "See töötab veel, aga kaob järgmises versioonis" | Midagi nähtavat ei juhtu; hoiatus tuleviku jaoks |
| Warning või Notice | Midagi ei ole päris korras | Tavaliselt midagi nähtavat ei juhtu, mõnikord käitub mõni osa imelikult |
| Fatal error | PHP peatub | Tühi leht või "Sellel veebisaidil on tekkinud kriitiline viga" (õppetund 5.4) |
WordPress ise jookseb enamasti hästi kaasa uute PHP versioonidega. Risk peitub vanades pluginates ja teemades, eriti kui neid pole kaua uuendatud või kui need on tellimustöö.
Oma praeguse versiooni leidmine
- WordPressis: Tööriistad > Saidi tervis, vahekaart Info, rea Server all: PHP versioon. Saidi tervis hoiatab ka siis, kui su versioon on aegunud.
- Oma majutuspaneelis: DirectAdminis koos CloudLinuxiga menüüs Select PHP version (praeguse versiooni taga seisab "(current)").
- Mõnikord paljastab server selle päises
X-Powered-By: PHP/8.3.x. Parem seda mitte näidata (õppetund 7.4), aga kui see seal on, on kiirelt näha.
Pane tähele: paljude majutajate juures kehtib PHP versioon kogu su paketi kohta, seega kõigi selles olevate saitide jaoks. Vana sait samas paketis võib sind takistada. See on lisapõhjus vanad saidid koristada või neile oma pakett anda.
Uuendus: samm-sammult
- Kõigepealt uuenda. Uuenda WordPress, teema ja kõik pluginad praeguse PHP versiooni peal. Suur osa probleemidest laheneb juba sellega, sest autorid kohandavad oma koodi uute PHP versioonide jaoks.
- Vaata, mida su pluginad ütlevad. wordpress.org pluginalehel on kirjas nõutav PHP versioon; muudatuste logis (changelog) seisab tihti "compatible with PHP 8.x". Plugin, mida pole aastaid uuendatud (õppetund 5.3), on kandidaat asendamiseks.
- Tee varukoopia (õppetund 8.1).
- Testi testkeskkonnas (staging) (õppetund 8.3). Kui su majutaja võimaldab saidile eraldi PHP versiooni anda, sea testkeskkond uuele versioonile. Kui see pole võimalik (üks versioon paketi kohta), testi teises paketis, kohapeal (lokaalselt) või vali tootmiskeskkonnas rahulik hetk, kus vana versioon on valmis tagasi taastamiseks.
- Üleminek: vali uus versioon oma paneelis. DirectAdminis koos CloudLinuxiga vali see menüüs Select PHP version ja klõpsa Apply; ilma Apply-klõpsuta ei muutu midagi.
- Kohe kontrolli: ava oma sait ja klõpsa mõned lehed läbi, ka haldusliides, vorm ja (poe puhul) kassa. Vaata vealogist (õppetund 5.4) uusi
PHP Fatal errorridu. - Laiendused ja sätted: mõne majutaja juures kuuluvad PHP laiendused ja valikud (nagu
memory_limit) versiooni juurde. Kontrolli pärast vahetust, kas need on uue versiooni jaoks korralikult seatud.
Kui midagi läheb valesti
- Saatuslik viga (fatal error): taasta vana versioon (enamikul majutajatel saab seda teha kohe), et sait jälle töötaks. Otsi vealogist, milline plugin või teema oli põhjuseks (tee on kirjas veateates), uuenda see, asenda see või küsi autorilt lahendust. Proovi seejärel uuesti.
- Ainult deprecated-teated: pole põhjust tagasi minna. Aga see on hoiatus: järgmises versioonis võib sellest saada viga. Märgi üles, milline plugin see on.
- Tellimustöö, mis enam ei tööta: vana sait, mille on teinud veebilehe koostaja, võib sisaldada koodi, mida enam keegi ei hoolda. Siis tuleb seda koodi kohandada kellelgi, kes PHP-d tunneb. Mõned majutajad, sealhulgas WebOké, pakuvad seda sinu eest ära teha.
Ära jäta saiti "igaveseks" vanasse versiooni, kuna üks plugin ei saa kaasa tulla. See lükkab probleemi edasi, mis muutub iga aastaga suuremaks.
Rohkem kindlust ette
Kellele huvi pakub: tööriistaga PHP_CodeSniffer ja reeglikomplektiga PHPCompatibilityWP saad lasta oma pluginate ja teemade koodi kontrollida asjade osas, mis uuemas PHP versioonis ei tööta, ilma saiti käivitamata. See leiab palju, aga mitte kõike. Testimine testkeskkonnas (staging) jääb siiski vajalikuks.
Praktikas: nii näeb see paneelis välja
Näitena kasutame DirectAdmini koos CloudLinuxiga. cPanelis kannab see sageli nime MultiPHP Manager või Select PHP Version, Pleskis PHP Settings.
- Ava Select PHP version (jaotise Extra Features all).
- Klõpsa versioonil kohas PHP version, vali uus versioon ja klõpsa Apply.
- Kontrolli vahekaarte Extensions ja Options uue versiooni jaoks.
- Kontrolli oma saiti ja vealogi. Kui midagi ei tööta, vali vana versioon ja Apply.
Kokkuvõte
- Iga PHP versioon saab kaks aastat aktiivset tuge ja kaks aastat ainult turvalisust; seejärel parandusi enam ei tule. 8. novembril 2026 ei saa 8.1 enam midagi ja 8.2 veel kuni 2026. aasta lõpuni.
- Uuendus lõhub peamiselt vanu pluginaid ja teemasid; deprecated on hoiatus, fatal error peatab saidi.
- Järjekord: uuenda kõik, kontrolli pluginad üle, tee varukoopia, testi testkeskkonnas, vii üle, kontrolli kohe.
- Kui midagi läheb valesti, taasta vana versioon, leia süüdlane vealogist ja lahenda see; ära jää kinni vanasse versiooni.
- Paljude majutajate juures kehtib versioon kogu paketi kohta; korista vanad saidid.
Test (quiz)
Ülesanne
Ülesanne A8.4: Kas su PHP versioon on veel toetatud? Vaata jaotisest Tööriistad > Saidi tervis (vahekaart Info, Server), millist PHP versiooni su sait kasutab, ja sisesta see koos oma domeeniga. Programm võrdleb versiooni php.net toetatud versioonide nimekirjaga: roheline aktiivse toe korral, oranž ainult turvalisuse korral, punane kui uuendusi enam ei tule. Kui su server näitab versiooni päises X-Powered-By, kontrollib programm ka, kas see vastab sellele, mille sisestasid (ja teatab, et seda päist oleks parem peita, õppetund 7.4).
Ülesanne D8.4: Uuendusplaan. Kirjuta plaan oma saidi uuendamiseks uusimale PHP versioonile, mida su majutaja pakub. Täida: praegune ja sihtversioon, millised pluginad ja teemad sul on ning kas need toetavad sihtversiooni (koos sellega, kust sa selle lugesid), kus testid (testkeskkond, teine pakett, kohapeal), kuidas saad tagasi minna ning millal seda teed. Vii ellu, kui saad, ja märgi üles, mis vealogis ilmus.
Ülesanne D8.4: Uuendusplaan
Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.
Vali sihtversioon, millel on aktiivne tugi (või vähemalt veel turvauuendused), ja nimeta iga plugina juures allikas (plugina leht, changelog, Sitediagnose).
Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.
Lisalugemist
Need artiklid kirjeldavad samme WebOké paneelides; teistes paneelides toimivad need sarnaselt.
- DirectAdmin juhend 14.1: PHP-versiooni valimine (Select PHP version)
- DirectAdmin juhend 14.6: Vead pärast PHP uuendamist ja error log'i leidmine
- PHP versiooni ja PHP seadete muutmine (ja mida teha vigade korral pärast uuendamist)
- DirectAdmin juhend 14.2: PHP laienduste sisse- ja väljalülitamine
- WebOké juhend 6.11: PHP uuenduse tellimine
- Toetatud PHP versioonid (php.net, inglise keeles): https://www.php.net/supported-versions.php
- PHP ja WordPressi versioonid (make.wordpress.org, inglise keeles): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
