Uusimpaan PHP versioon siirtyminen

Tässä ohjeessa neuvotaan, miten voit siirtää sivustosi käyttämään uusinta PHP-versiota, joka on tuettuna WP-palvelussa. PHP on webpalvelimen puolella käytettävä ohjelmointikieli, jota käytetään usein nettisivujen luomisessa ja suurin osa WordPressin lisäosista perustuu PHP-koodiin.


Miksi vaihtaa uusimpaan PHP versioon?

Suurimpana syynä PHP 7.2 siirtymiseen on PHP 5.6 ja 7.0 versioiden tietoturvatuen loppuminen, 5.6 tuki loppuu 31.12.2018 ja 7.0 tuki loppuu 3.12.2018. PHP 7.2 on suositeltava sekä tietoturva- että nopeusuudistuksiensa puolesta. Se tuo huomattavia parannuksia PHP:n tietoturvaan ja samalla vanhentuneita tekniikoita on pudotettu pois. Lisätietoa löydät wp-palvelu.fi blogikirjoituksesta sekä WordPressin tukisivulta.


Komento wp-check-php-version näyttää käytössä olevan PHP:n version. Jos käytössä on vanhempi versio PHP:sta, niin komento antaa myös varoituksen version tuen päättymisestä.


Uusimmalla PHP:lla komennon tuloste näyttää seuraavalta:

Checking for PHP backends...
Found PHP mode definition: php7.2 in '/data/wordpress/nginx/php.conf'
php7.2

Vanhemmalla PHP:lla komennon tuloste taas näyttää seuraavalta:

Checking for PHP backends...
Using default PHP mode (php5)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! WARNING: PHP 5.6 is deprecated, security support will end 31th December 2018! !
!                                                                               !
! See <https://seravo.com/docs/configuration/php7-hhvm/> for more details.      !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
php5

Miten tarkistan onko lisäosat yhteensopivia uusimman PHP:n kanssa?

Käytettyjen lisäosien yhteensopivuutta PHP 7.2 kanssa pystyy tutkimaan wp-php-compatibility-check komennon avulla, joka kertoo PHP-koodissa olevat epäyhteensopivuudet uusimman PHP:n kanssa ja selitykset minkä takia ne eivät ole yhteensopivia.


Jos jokainen lisäosa on yhteensopiva, niin tulosteen pitäisi näyttää seuraavalta:

............................................................  60 / 158 (38%)
............................................................ 120 / 158 (76%)
......................................                       158 / 158 (100%)


Time: 3.39 secs; Memory: 62.01Mb

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

Jos käytössä on lisäosia, jotka eivät ole vielä PHP 7.2 kanssa yhteensopivia, niin tuloste näyttää seuraavalta:

............................................................  60 / 159 (38%)
............................................................ 120 / 159 (75%)
..................................E....                      159 / 159 (100%)


FILE:
wp-content/plugins/welcome-email-editor/sb_welcome_email_editor.php
--------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AND 4 WARNINGS AFFECTING 5 LINES
--------------------------------------------------------------------------------------------------------------
 91 | WARNING | Function create_function() is deprecated since PHP 7.2; Use an anonymous function instead
213 | WARNING | Function create_function() is deprecated since PHP 7.2; Use an anonymous function instead
229 | WARNING | Function create_function() is deprecated since PHP 7.2; Use an anonymous function instead
329 | WARNING | Function create_function() is deprecated since PHP 7.2; Use an anonymous function instead
912 | ERROR   | Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead
--------------------------------------------------------------------------------------------------------------

Time: 3.37 secs; Memory: 62.01Mb

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


Komennolla wp-php-compatibility-check saadaan myös katsottua pelkästään yksittäisen lisäosan tai teeman yhteensopivuus uusimpaan PHP:hen.

Esimerkiksi:

wp-php-compatibility-check /data/wordpress/htdocs/wordpress/wp-content/themes/twentyseventeen


Komennolla wp-php-compatibility-check pystytään myös tarkistamaan tietyn PHP version yhteensopivuus lisäosien kanssa:


Esimerkki 1:

wp-php-compatibility-check /data/wordpress/htdocs/wordpress/wp-content/themes/twentyseventeen 7.2

Esimerkki 2:

wp-php-compatibility-check “” 7.2

HUOM! Jos wp-php-compatibility-check palauttaa virheitä, niin versiopäivitystä ei voida tehdä ennen, kuin virheet on saatu korjattua. Seravon kuukausimaksuun ei kuulu lisäosan eikä teeman korjaaminen uusimpaan PHP versioon, vaan ainoastaan lisäosan päivittäminen uusimpaan versioon. Asiakaspalvelustamme voi kuitenkin kysellä vinkkejä digitoimistoista, jos korjausten tekeminen ilman apua ei onnistu.


Miten vaihdan PHP version?

PHP version vaihto tapahtuu /data/wordpress/nginx/ kansioon luotavalla php.conf tiedostolla, johon asetetaan rivi “set $mode php7.2;”. Sen jälkeen ajetaan komento wp-restart-nginx, jotta PHP 7.2 otetaan käyttöön. Ennen kuin tekee vaihdoksen, niin sivustosta kannattaa ottaa varmuuskopio hetkestä ennen muutosta.

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

Seuraavaksi katsotaan PHP:n virhelokista (php-error.log), ettei vaihdoksessa ole tapahtunut mitään virheitä. Lokitiedosto löytyy /data/log kansiosta. Virhelokin saa näkyville komennolla: cat /data/log/php-error.log.

Lisätietoa lokeista: https://help.seravo.com/fi/knowledgebase/11-tiedostot-ja-tietokannat/docs/47-sivuston-lokitiedostot


PHP error lokia pystyy myös tutkimaan kirjautumalla omalle wordpress sivustolle pääkäyttäjänä, jolloin sivupalkista löytyy “Työkalut”, jonka alaisuudessa on “Lokit” -osio. Lokit osiosta löytyy php-error.log.


Lisätietoa versiovaihdoksista

5.6.x -> 7.0.x
7.0.x -> 7.1.x
7.1.x -> 7.2.x

Ratkaisiko tämä ongelman?