Uusimpaan PHP-versioon siirtyminen

Miten päivitetään WordPress-sivuston PHP-versio?

Tässä artikkelissa kerromme, miten vaihdat sivustosi käyttämään uusinta PHP-versiota. PHP on web-palvelimen puolella käytettävä ohjelmointikieli, jota käytetään usein nettisivujen luomisessa. WordPressin ydin sekä suurin osa lisäosista ja teemoista on rakennettu PHP:lla. 

Mikäli testityökalu wp-php-compatibility-check palauttaa virheitä, versiopäivitystä ei voida tehdä ennen kuin virheet on saatu korjattua tai on varmistuttu niiden olevan harmittomia.

Seravon kuukausimaksuun ei kuulu lisäosan tai teeman korjaaminen uusimpaan PHP-versiota varten, vaan ainoastaan lisäosan/teeman päivittäminen uusimpaan versioon. Asiakaspalvelustamme voi kuitenkin kysellä tukea ja ohjeita päivitykseen sekä vinkkejä digitoimistoista, mikäli PHP-päivityksessä kaivataan apua.

Seravolla saatavilla olevat PHP-versiot

Oheisesta listasta selviää, mitkä PHP-versiot ovat Seravolla tuettuja, ja mitkä versiot poistuvat käytöstä. Vanhentuneiden, turvattomiksi todettujen PHP-versioiden käyttö ei ole mahdollista Seravon WP-palvelussa. Listan WP-palvelussa käytössä olevista ja käytöstä poistetuista PHP-versioista löydät täältä.

Miksi kannattaa vaihtaa uusimpaan PHP-versioon?

PHP-päivitykset sisältävät yleensä useita tietoturvaan ja nopeuteen liittyviä parannuksia. Onkin suositeltavaa, että uutta versiota siirrytään käyttämään heti kun mahdollista. WordPress-projektin omalla tukisivustolla kerrotaan vielä tarkemmin versiovaihdoksen hyödyistä.

Suuri muutos PHP-versioissa tapahtui esimerkiksi vuoden 2018 lopulla, kun laajalti käytetyn PHP 5.6:n tietoturvatuki päättyi. Seravon uusimmat blogikirjoitukset aiheesta löydät sivuiltamme avainsanalla "PHP". Poimimme blogiin muutoksista aina oleellisimmat asiat, jotta sinun ei tarvitse selvittää niitä itse.

Miten tarkistan ja vaihdan oman sivustoni PHP-version?

Huomio: Suosittelemme ottamaan varmuuskopion sivustosta ennen PHP-päivitystä. Näin sivustosta voidaan palauttaa toimintaan mahdollisimman tuore versio, jos päivityksen aikana jotain meneekin pieleen eivätkä esimerkiksi saman päivän aikana tehdyt muut muutokset sivustolle katoa. Jos tarvitset sivuston palauttamisen varmuuskopiosta, voit olla yhteydessä Seravon asiakaspalveluun help@seravo.com . Sivuston palauttaminen varmuuskopiosta kuuluu palvelun hintaan, eikä siitä koidu mitään kuluja.

WordPressin hallintapaneellista

Kirjautumalla WordPress-sivustosi hallintapaneeliin ja menemällä Työkalut-valikon alta kohtaan "Ylläpito" pääset vaihtamaan sivuston PHP-version haluamaksesi. Sama työkalu näyttää myös käytössä olevan PHP-version.

Komentoriviltä tehtävä muutos

Myös SSH-yhteyden ylitse ajettavalla komennolla wp-check-php-version saat näkyviin tällä hetkellä käytössä olevan PHP-version. Mikäli käytössä on sellainen versio PHP:sta, jonka tuki on päättymässä, komento antaa myös varoituksen version tuen päättymisestä.

Viimeaikaisella PHP-versiolla komennon tuloste näyttää seuraavalta:

==> Check PHP backends:
Found PHP mode definition: php8.0 in '/data/wordpress/nginx/php.conf'
Using php8.0
php8.0

Vanhemmalla versiolla komennon tuloste taas näyttää seuraavalta:

==> Check PHP backends:
Found PHP mode definition: php5 in '/data/wordpress/nginx/php.conf'
Using php5
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! WARNING: PHP 5.6 is deprecated, security support has ended 31th December 2018!!
!                                                                               !
! See <https://seravo.com/docs/configuration/php7-hhvm/> for more details.      !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
php5

Versio tulee vaihtaa tiedostossa /data/wordpress/nginx/php.conf lisäämällä sinne rivi set $mode php8.0; .  Komennon versionumero tulee vaihtaa halutuksi versioksi. Tämän jälkeen sivuston nginx-palvelu tulee uudelleenkäynnistää komennolla wp-restart-nginx, jotta tehty muutos tulee voimaan. Lisätietoa kehittäjädokumentaatiossamme.

Alla olevalla yhdellä komennolla saat halutessasi tehtyä kaiken yllä mainitun samalla kertaa

echo "set \$mode php8.0;" | tee /data/wordpress/nginx/php.conf && wp-restart-nginx

Vaihdoksen jälkeen on hyvä tarkistaa, että sivuston virhelokiin ei tule vaihdoksen johdosta uusia varoituksia. Tämänkin voit tarkistaa suoraan WordPressin hallintapaneelista.

Miten tarkistan, että sivustoni lisäosat ovat yhteensopivia uusimman PHP-version kanssa?

WordPressin hallintapaneelista

Yhteensopivuuden tarkastaminen tapahtuu samalla työkalulla millä vaihdat PHP-version. Kirjaudu sisään WordPressin hallintapaneeliin ja avaa Työkalut-valikon alta kohta Ylläpito, sieltä löydät Seravo-pluginin työkalun.

Komentoriviltä tehtävä tarkistus

Käytettyjen lisäosien yhteensopivuutta uusimman PHP:n kanssa voit tarkastella myös wp-php-compatibility-check-komennon avulla, mikä kertoo PHP-koodissa olevat epäyhteensopivuudet uusimman PHP-version kanssa.

Testin tulokset tallentuvat lokiin tiedostoon /data/log/wp-php-compatibility.log, ja lokitiedoston sisältä löydät esimerkiksi alla olevan kaltaisia varoituksia johonkin käyttämääsi lisäosaan liittyen:

FILE: /data/wordpress/htdocs/wp-content/plugins/stackable-ultimate-gutenberg-blocks/freemius/includes/class-freemius.php
----------------------------------------------------------------------------------------------------------------------------------
FOUND 0 ERRORS AND 2 WARNINGS AFFECTING 2 LINES
----------------------------------------------------------------------------------------------------------------------------------
 18305 | WARNING | Since PHP 7.0, functions inspecting arguments, like func_get_args(), no longer report the original value as
       |         | passed to a parameter, but will instead provide the current value. The parameter "$tag" was used, and possibly
       |         | changed (by reference), on line 18303.
 18462 | WARNING | Since PHP 7.0, functions inspecting arguments, like func_get_args(), no longer report the original value as
       |         | passed to a parameter, but will instead provide the current value. The parameter "$tag" was used, and possibly
       |         | changed (by reference), on line 18460.
----------------------------------------------------------------------------------------------------------------------------------

Komennolla wp-php-compatibility-check voit tarkastella yksittäisen teeman yhteensopivuutta uusimman PHP-version kanssa:

$ wp-php-compatibility-check /data/wordpress/htdocs/wp-content/themes/twentytwenty
.............................. 30 / 30 (100%)

Time: 529ms; Memory: 14MB

Scan complete. Results are stored in the logfile /data/log/wp-php-compatibility.log

Komennolla pystytään tarkistamaan yhteensopivuus myös jonkin tietyn lisäosan kanssa:

$ wp-php-compatibility-check /data/wordpress/htdocs/wp-content/plugins/autodescription
............................................................  60 / 114 (53%)
......................................................       114 / 114 (100%)

Time: 3.86 secs; Memory: 18MB

Scan complete. Results are stored in the logfile /data/log/wp-php-compatibility.log

Lisäksi yhteensopivuutta voi tarkastella tietyn PHP-version osalta lisäämällä versionumeron komennon loppuun:

$ wp-php-compatibility-check /data/wordpress/htdocs/wp-content/themes/twentytwenty 7.4
.............................. 30 / 30 (100%)

Time: 530ms; Memory: 14MB

Scan complete. Results are stored in the logfile /data/log/wp-php-compatibility.log

PHP-versiovaihdoksen ohjeet kehittäjiä varten

Vastasiko tämä kysymykseesi? Kiitos palautteesta. Palautteen lähettämisessä oli ongelma. Yritä uudelleen myöhemmin.