Moduuli 8 · 8.4
PHP-versiot ja päivitykset
Moduuli 8: Varmuuskopiot, testiympäristö ja PHP-päivitykset · Lukuaika: 10 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat valmistella ja tehdä PHP-päivityksen turvallisesti ja tarvittaessa perua sen.
Keskeiset käsitteet: PHP:n elinkaari (aktiivinen tuki, vain tietoturva, tuen loppu), WordPressin, teeman ja lisäosien yhteensopivuus, vanhentunut (deprecated), varoitus, kriittinen virhe, Sivuston eheys, virheloki, testiympäristö (staging), palauttaminen, päivityksen teettäminen
Miksi PHP-versioilla on väliä
WordPress, teemasi ja lisäosasi on kirjoitettu PHP:llä (oppitunti 1.2). PHP:stä julkaistaan joka vuosi uusi versio (8.3, 8.4, 8.5, ...). Jokaista versiota ylläpidetään määrätyn ajan:
- aktiivinen tuki: kaksi vuotta virhe- ja tietoturvakorjauksia;
- vain tietoturva: sen jälkeen vielä kaksi vuotta pelkkiä tietoturvakorjauksia;
- tuen loppu (end of life): ei enää korjauksia, ei edes tietoturva-aukkoihin.
Tilanne 8. marraskuuta 2026 php.net-sivuston mukaan:
| Versio | Tietoturvapäivitykset asti | Tila |
|---|---|---|
| 8.1 ja vanhemmat | (päättyneet) | Ei enää päivityksiä |
| 8.2 | 31. joulukuuta 2026 | Vain tietoturva, tuki päättymässä |
| 8.3 | 31. joulukuuta 2027 | Vain tietoturva |
| 8.4 | 31. joulukuuta 2028 | Aktiivinen |
| 8.5 | 31. joulukuuta 2029 | Aktiivinen |
Sivusto, joka käyttää versiota ilman päivityksiä, pyörii ohjelmistolla, jossa on tunnettuja aukkoja, joita ei enää korjata. Lisäksi uudemmat versiot ovat huomattavasti nopeampia (oppitunti 6.3). Ja wordpress.org suosittelee PHP 8.3:a tai uudempaa (tilanne marraskuussa 2026). Tarkoitus on siis pysyä ajan tasalla joka vuosi, ei tehdä isoa loikkaa kerran viidessä vuodessa.
Miksi päivitys voi rikkoa jotain
Jokainen uusi PHP-versio muuttaa jotain. Funktiot, jotka on jo vuosia merkitty vanhentuneiksi (deprecated), poistetaan, ja säännöt tiukkenevat. Muutama tunnettu esimerkki:
- PHP 8.0 poisti muun muassa funktiot
create_function()jaeach(), ja monista varoituksista tuli virheitä; - PHP 8.2 merkitsi vanhentuneeksi ominaisuuksien dynaamisen luomisen olioille, mikä on yleistä vanhemmissa lisäosissa.
Ilmoituksia on kolmenlaisia, ja ero on tärkeä:
| Ilmoitus | Merkitys | Seuraus |
|---|---|---|
| Deprecated (vanhentunut) | "Tämä toimii vielä, mutta poistuu tulevassa versiossa" | Ei mitään näkyvää; varoitus tulevaisuutta varten |
| Warning tai Notice | Jokin ei ole aivan kunnossa | Yleensä ei mitään näkyvää, joskus jokin osa käyttäytyy oudosti |
| Fatal error | PHP pysähtyy | Valkoinen sivu tai "kriittinen virhe" (oppitunti 5.4) |
WordPress itse pysyy yleensä hyvin mukana uusissa PHP-versioissa. Riski on vanhoissa lisäosissa ja teemoissa, varsinkin jos niitä ei ole päivitetty pitkään aikaan tai ne on tehty räätälöidysti.
Nykyisen version selvittäminen
- WordPressissä: Työkalut > Sivuston eheys, välilehti Tiedot, kohdassa Palvelin: PHP-versio. Sivuston eheys varoittaa myös, jos versiosi on vanhentunut.
- Webhotellin hallintapaneelissa: DirectAdminissa, jossa on CloudLinux, kohdassa Select PHP version (nykyisen version perässä lukee "(current)").
- Joskus palvelin paljastaa sen otsakkeessa
X-Powered-By: PHP/8.3.x. Mieluummin ei (oppitunti 7.4), mutta jos otsake on näkyvissä, versio selviää nopeasti.
Huomaa: monilla palveluntarjoajilla PHP-versio koskee koko pakettia, siis kaikkia siinä olevia sivustoja. Vanha sivusto samassa paketissa voi estää päivityksen. Se on yksi syy lisää siivota vanhat sivustot pois tai siirtää ne omaan pakettiinsa.
Päivitys vaihe vaiheelta
- Päivitä ensin. Päivitä WordPress, teemasi ja kaikki lisäosasi nykyisellä PHP-versiolla. Suuri osa ongelmista ratkeaa jo tällä, koska tekijät muokkaavat koodiaan uusia PHP-versioita varten.
- Katso, mitä lisäosistasi kerrotaan. Lisäosan sivulla wordpress.org-sivustolla näkyy vaadittu PHP-versio; muutoslokissa (changelog) lukee usein "compatible with PHP 8.x". Lisäosa, jota ei ole päivitetty vuosiin (oppitunti 5.3), kannattaa harkita vaihdettavaksi.
- Tee varmuuskopio (oppitunti 8.1).
- Testaa testiympäristössä (oppitunti 8.3). Jos palveluntarjoajasi voi antaa jokaiselle sivustolle oman PHP-version, vaihda testiympäristöön uusi versio. Jos se ei onnistu (yksi versio pakettia kohden), testaa testiympäristössä toisessa paketissa tai paikallisesti, tai valitse tuotannossa rauhallinen hetki ja pidä vanha versio valmiina palautettavaksi.
- Vaihda versio: valitse uusi versio paneelissasi. DirectAdminissa, jossa on CloudLinux, valitset sen kohdassa Select PHP version ja klikkaat Apply; ilman Apply-painiketta mikään ei muutu.
- Tarkista heti: avaa sivustosi ja selaa muutama sivu, myös hallinta, jokin lomake ja (verkkokaupassa) kassa. Etsi virhelokista (oppitunti 5.4) uusia
PHP Fatal error-rivejä. - Laajennukset ja asetukset: joillakin palveluntarjoajilla PHP-laajennukset ja asetukset (kuten
memory_limit) kuuluvat tiettyyn versioon. Tarkista vaihdon jälkeen, että ne ovat kunnossa uudessa versiossa.
Jos jokin menee pieleen
- Kriittinen virhe: palauta vanha versio (useimmilla palveluntarjoajilla se onnistuu heti), jotta sivustosi toimii taas. Etsi virhelokista, mikä lisäosa tai teema oli syynä (polku näkyy virheilmoituksessa), päivitä se, vaihda se toiseen tai pyydä tekijältä korjausta. Yritä sitten uudelleen.
- Pelkkiä deprecated-ilmoituksia: ei syytä palata vanhaan. Se on kuitenkin varoitus: seuraavassa versiossa siitä voi tulla virhe. Kirjaa ylös, mikä lisäosa on kyseessä.
- Räätälöity koodi, joka ei enää toimi: vanhassa, verkkosivujen tekijän rakentamassa sivustossa voi olla koodia, jota kukaan ei enää ylläpidä. Silloin koodin pitää korjata joku, joka osaa PHP:tä. Jotkin palveluntarjoajat, myös WebOké, tarjoutuvat tekemään sen puolestasi.
Älä jätä sivustoa "pysyvästi" vanhaan versioon siksi, että yksi lisäosa ei pysy mukana. Se vain lykkää ongelmaa, joka kasvaa joka vuosi.
Lisää varmuutta etukäteen
Pidemmälle haluaville: PHP_CodeSniffer-työkalulla ja PHPCompatibilityWP-säännöillä voit tarkistuttaa lisäosiesi ja teemojesi koodin asioiden varalta, jotka eivät toimi uudemmassa PHP-versiossa, ilman että sivustoa tarvitsee ajaa. Näin löytyy paljon, mutta ei kaikkea. Testaaminen testiympäristössä on edelleen tarpeen.
Käytännössä: tältä se näyttää paneelissa
Esimerkkinä käytämme DirectAdminia, jossa on CloudLinux. cPanelissa toiminto on usein nimeltään MultiPHP Manager tai Select PHP Version, Pleskissä PHP Settings.
- Avaa Select PHP version (kohdassa Extra Features).
- Klikkaa versiota kohdassa PHP version, valitse uusi versio ja klikkaa Apply.
- Tarkista uuden version välilehdet Extensions ja Options.
- Tarkista sivustosi ja virheloki. Jos jokin ei toimi, valitse vanha versio ja klikkaa Apply.
Yhteenveto
- Jokainen PHP-versio saa kaksi vuotta aktiivista tukea ja kaksi vuotta pelkkiä tietoturvakorjauksia; sen jälkeen korjauksia ei enää tule. 8. marraskuuta 2026 versio 8.1 ei saa enää mitään ja 8.2 saa korjauksia vielä vuoden 2026 loppuun.
- Päivitys rikkoo lähinnä vanhoja lisäosia ja teemoja; deprecated on varoitus, fatal error pysäyttää sivuston.
- Järjestys: päivitä kaikki, tarkista lisäosat, tee varmuuskopio, testaa testiympäristössä, vaihda versio, tarkista heti.
- Jos jokin menee pieleen, palauta vanha versio, etsi syyllinen virhelokista ja korjaa ongelma; älä jää vanhaan versioon.
- Monilla palveluntarjoajilla versio koskee koko pakettia; siivoa vanhat sivustot pois.
Tietovisa (quiz)
Tehtävä
Tehtävä A8.4: Onko PHP-versiosi vielä tuettu? Katso kohdasta Työkalut > Sivuston eheys, välilehti Tiedot, Palvelin, mitä PHP-versiota sivustosi käyttää, ja syötä se yhdessä verkkotunnuksesi kanssa. Ohjelma vertaa versiota php.net-sivuston tuettujen versioiden luetteloon: vihreä, jos versiolla on aktiivinen tuki, oranssi, jos se saa vain tietoturvakorjauksia, punainen, jos päivityksiä ei enää tule. Jos palvelimesi näyttää version otsakkeessa X-Powered-By, ohjelma tarkistaa myös, vastaako se syöttämääsi versiota (ja huomauttaa, että otsake kannattaa piilottaa, oppitunti 7.4).
Tehtävä D8.4: Päivityssuunnitelma. Kirjoita suunnitelma sivustosi päivittämisestä uusimpaan PHP-versioon, jota palveluntarjoajasi tarjoaa. Kirjaa: nykyinen ja tavoiteversio, mitä lisäosia ja teemoja sinulla on ja tukevatko ne tavoiteversiota (sekä mistä luit sen), missä testaat (testiympäristö, toinen paketti, paikallisesti), miten pääset takaisin ja milloin teet päivityksen. Toteuta se, jos voit, ja kirjaa ylös, mitä virhelokiin ilmestyi.
Tehtävä D8.4: Päivityssuunnitelma
Tämän tehtävän teet itse, kukaan ei tarkista sitä. Merkitse tekemäsi kohdat ja merkitse tehtävä tehdyksi.
Valitse kohdeversio, jolla on aktiivinen tuki (tai ainakin vielä tietoturvapäivityksiä), ja mainitse jokaisen lisäosan kohdalla lähde (lisäosan sivu, muutosloki, Sitediagnose).
Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.
Lue lisää
Nämä artikkelit kuvaavat vaiheet WebOkén paneeleissa; muissa paneeleissa ne toimivat samaan tapaan.
- DirectAdmin-ohje 14.1: PHP-version valinta (Select PHP version)
- DirectAdmin-ohje 14.6: Virheet PHP-päivityksen jälkeen ja virhelokin löytäminen
- PHP-version ja PHP-asetusten muuttaminen (ja mitä tehdä, jos päivityksen jälkeen ilmenee virheitä)
- DirectAdmin-ohje 14.2: PHP-laajennusten käyttöönotto ja poistaminen käytöstä
- WebOké-käyttöopas 6.11: PHP-päivityksen tilaaminen
- Tuetut PHP-versiot (php.net, englanniksi): https://www.php.net/supported-versions.php
- PHP- ja WordPress-versiot (make.wordpress.org, englanniksi): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
