PHP 5.6 -> 7.X päivitys: mitä tulee huomioida?

PHP on avoimen lähdekoodin ohjelmointikieli, jota käytetään laajalti verkkopalveluiden kehittämisessä. PHP:n versioita julkaistaan noin kerran vuodessa. Mikäli vielä webhotellisi asetuksissa on käytössä PHP 5.6 versio, on hyvä päivittää uudempaan. Viestintäviraston kyberturvallisuuskeskus suosittelee luopumaan vanhan PHP 5.6 -version käytöstä jo senkin takia, sillä version 5.6 tuki ja päivitykset ovat päättyneet virallisesti 31.12.2018. Mikäli käytössäsi on vielä PHP 5.6 versio webhotellissasi ja sivustollasi, näin teet päivittämisen webhotellissasi.

PHP:n päivittäminen parantaa tyypillisesti paitsi tietoturvaa, myös verkkopalveluiden nopeutta. Phoronix.comin artikkelissa on testattu, että päivitys 5.6 versiosta 7.2 versioon nopeuttaa toimintoja jopa 250 %. Vanhan version käyttäminen voi siis mahdollisesti toimia pullonkaulana ja hidastaa verkkosovelluksia ja -sivustoja.

PHP:ta hyödyntäviä julkaisuhallintajärjestelmiä (CMS, content management system) on lukuisia: mm. WordPress, Magento, Drupal ja Joomla. Pääosin kaikki näistä toimivat virallisesti uudemmilla PHP 7.X versioilla, mutta CMS-alustoille saatavilla vanhoista lisäosista saattaa vaatia koodin muutoksia kehittäjältä yhteensopivuuden takia. Tämän takia automaattisesti ei voi sanoa, että päivitys onnistuu jos julkaisuhallintajärjestelmän rungon (core) tuki itsessään olisi yhteensopiva ja kunnossa.

Testaa toimivuus

Päivitykseen kannattaa varautua testaamalla, että kaikki toimivat päivityksen jälkeen. XetNET ei automaattisesti päivitä asiakkaiden PHP-versioita uuteen, koska yhteensopivuusongelmien takia kokonaiset verkkopalvelut voivat lakata toimimasta. PHP:n vanha versio on kuitenkin tietoturvallisuusriski ja sen takia päivitys on suositeltu toimenpide jokaiselle asiakkaallemme.

Yksinkertaisimmillaan päivitys on muutaman minuutin homma, joka onnistuu tämän ohjeen avulla. Mikäli kuitenkin törmäät ongelmiin, löydät tästä kirjoituksesta lopusta muutaman vinkin, jolla selvittää mikä aiheuttaa mutkia matkaan.

Lähtötilanne: onko turvallista päivittää?

Tarkista sovelluksen kehittäjältä, mikä uudemmista PHP 7.X versioista on tuettu. Esimerkiksi WordPress virallisesti kirjoitushetkellä tukee PHP 7.3 versiota WordPressin 5.0 versiosta lähtien. Tästä huolimatta kaikki WordPress-lisäosat eivät välttämättä ole PHP 7.3 yhteensopivia. Tilanne on varmasti eri vuoden kuluttua ja etenkin PHP:n seuraavat versiot saattavat jälleen aiheuttaa yhteensopivuusongelmia ja vaatia kehittäjiltä uudet versiot.

Onneksi et voi aiheuttaa suurta vahinkoa vain testaamalla asiaa, eli vaikka kokeilisit uutta PHP-versiota livesivustollakin. Tällöin voit aina palata PHP:n versiossa aiempaan.

Aloitetaan kirjautumalla cPanel-hallintatyökaluun:

Kuva: Kirjauduttuasi cPaneliin, kirjoita ylös hakukenttään ”php”, niin löydät nopeasti ”Select PHP Version” työkalun. Löydät sen ”Ohjelmisto” otsikon alta myös ilman hakukentän apua.

Kuva: Klikkaa ”PHP version” kohdasta alasvelovalikko auki, niin näet mitä eri versioita on valittavissa.

Kuva: Valitse listalta haluamasi versio (esimerkissä 7.0) ja klikkaa oikealla puolella olevaa ”Set as current” tekstilinkkiä.

Painettuasi ”Set as current” linkkiä, uusi asetus astuu voimaan. Testaa nyt sivustosi toimivuus, kaikki toiminnollisuudet ja lisäosat, jotta varmistut että kaikki toimii kuten pitää.

Mikäli sivustosi ei toimi kun kytket uuden version päälle, voit selvittää vikaa tarkemmin lokitiedostosta käsin. Löydät webhotelliisi asennetun sovelluksen tiedostokansiosta (oletuksena /public_html/, ellet sovelluksesi ole asennettuna alahakemistoon) PHP-virhelogin nimellä “error_log”. Lokitiedostosta saat tarkemman tiedon, missä meni pieleen ja oliko syyllinen jossakin lisäosassa. Näin osaat lähteä selvittämään onko lisäosaan saatavilla päivityksiä ja/tai vaihtamaan lisäosa toiseen, mikäli sen kehittäjä on unohtanut sen päivityksen kokonaan.

Ongelmanaiheuttaja voi yllämainitun lisäksi olla myös .htaccess tiedostossa. Voit myös kokeilla nollata muut PHP-asetukset painamalla ”Reset to default” painiketta, jos jokin aiempi PHP-asetus aiheuttaa ristiriidan. Vinkki: ota ruudunkaappaus asetuksista miten ne olivat ennen, jos oletusasetuksiin palauttaminen kytkee PHP-asetuksista tärkeitä ominaisuuksia pois joita verkkopalvelusi kehittäjä on kytkenyt päälle.

Lisävinkki: Tarkista myös onko “Opcache” kytketty päälle PHP-asetuksissasi: jos ei, kytke se käyttöön PHP-asetuksissa ja saat mukavan nopeutuksen PHP:n toimintaan.

Jos kaikki meni mallikkaasti, taputa itseäsi olalle sillä ratkaisit PHP 5.6 version tietoturvaan liittyvät murheet ja todennäköisesti myös nopeutit verkkopalveluasi ohimennen!

emjr on Emailemjr on Facebookemjr on Linkedinemjr on Twitter
emjr
Toimitusjohtaja at XetNET / Xetpoint Oy
Xetpoint Oy:n perustaja ja yrittäjä. Bisneshenkinen nörtti henkeen ja vereen joka rentoutuu(?) keskeneräisen taloprojektin kanssa.