Koniec jednej kapitoly, alebo prečo by ste nemali používať staré verzie PHP


  • Zdieľať na Google+

V decembri tohto roku skončí podpora aktuálne najpoužívanejšej verzie PHP 5.6. Uzavrie sa tým dlhá kapitola PHP 5, ktorá začala v roku 2004 s príchodom verzie 5.0. Keďže v rovnakom období bude ukončená podpora aj PHP 7.0, prinášame vám pohľad na naše najbližšie kroky a niekoľko dôvodov, prečo by ste nemali používať staré verzie PHP. Budúci rok totiž plánujeme výrazné zmeny.

V tomto článku nájdete:

Životný cyklus PHP

PHP je najpoužívanejší skriptovací jazyk pre web. Podľa W3Techs ho používa okolo 80 % webov. Na väčšine zdieľaných hostingov predstavuje jedinú dostupnú možnosť. Aj u nás, zatiaľ. Pre potreby tohto článku si môžete PHP predstaviť ako softvérové prostredie, ktoré zabezpečuje fungovanie webu, napríklad redakčného systému WordPress, ktorý je celý napísaný v jazyku PHP.

Rovnako ako každý softvér, aj PHP má svoj životný cyklus. Pravidelne vychádzajú novšie verzie, ktoré pridávajú nové funkcie a opravujú chyby a nedostatky tých predošlých. Nové verzie vychádzajú približne každý rok a ich podpora trvá väčšinou 2 roky. Problém, pred ktorým stojíme, je, že väčšina webov beží na starých verziách PHP, ktoré už niekoľko rokov nie sú oficiálne podporované.

Podporované verzie PHP, október 2018

Podporované verzie PHP podľa PHP.net, október 2018

Ako to vyzerá u nás a vo svete

Na ukážku globálneho trendu môžeme použiť živé štatistiky z wordpress.org. Spomedzi všetkých WordPress webov, iba približne 25 % používa niektorú z verzií PHP 7. Takmer 40 % používa čoskoro nepodporovanú verziu PHP 5.6, zvyšných 35 % používa ešte staršie verzie PHP 5.5 – 5.2. A pritom drvivá väčšina všetkých WordPress webov používa najnovšiu verziu WordPress kompatibilnú s PHP 7. Na nepriaznivú situáciu poukázali v minulosti napríklad tvorcovia populárneho pluginu Yoast SEO.

Aktuálne využívané verzie PHP na všetkých WordPress weboch, zdroj wordpress.org

Aktuálne využívané verzie PHP na všetkých WordPress weboch, zdroj wordpress.org

Podobnú situáciu vidíme aj na našej infraštruktúre. Táto štatistika z leta 2018 vás možno prekvapí, no približne 70 % našich používateľov používalo na svojom hostingu jednu zo zastaraných verzií PHP 5.2 – 5.5. Dominuje najmä PHP 5.5 (dôvod nižšie). Na konci roku sa k nim pridá ďalšia skupina, ktorá používa verzie PHP 5.6 a PHP 7.0. Oficiálna podpora oboch verzií končí v decembri 2018.

Prehľad použitých verzií PHP na WebSupport infraštruktúre

Prehľad použitých verzií PHP na WebSupport infraštruktúre, leto 2018

Tento trend nevyzerá vôbec optimálne, preto sme sa rozhodli ho zlepšiť a presunúť čo najviac webov a používateľov na novšie verzie – naprieč všetkými krajinami, kde pôsobíme. A ak sa nám podarí zlepšiť stav aj mimo našich hostingov, profitovať z toho budeme ako celá komunita.

Najčastejšie dôvody používania starých verzií PHP

Z praxe vidíme najčastejšie tieto dôvody, prečo používatelia používajú staré verzie PHP:

  • Majitelia webov o tom nevedia alebo to neriešia. Vo väčšine prípadov je to plne akceptovateľné – riešenie podobných vecí očakávajú od svojich developerov, správcov webu, či priamo od hostingu. Najskôr z tohto dôvodu má PHP 5.5 najväčšie zastúpenie na našich hostingoch – dlhú dobu sme túto verziu ponúkali ako predvolenú a používatelia ju nikdy nezmenili. Už dlhšiu dobu máme ako predvolenú verziu PHP 7.2.
  • Zabezpečenie kompatibility na strane developerov/správcov vyžaduje čas na aktualizáciu redakčných systémov, pluginov a následné testovanie. Ak ste si pred rokmi nechali vyrobiť web a ďalej to neriešili, aktualizácia na novšie verzie PHP nemusí byť vôbec triviálna a lacná. Menší problém to predstavuje pre moderné open-source systémy, ktoré vo väčšine prípadov stačí „iba“ aktualizovať. Z grafov vyššie je ale vidno, že ani toto nestačí.
  • Väčšina hostingov sa tejto téme dlhodobo vyhýba(la). Vrátane nás. Dôvod je prostý – nakoľko je pre majiteľov webov problematické zabezpečiť kompatibilitu webov, vynútená aktualizácia zo strany hostingu môže spôsobiť nefunkčnosť tisícok webových stránok. A to nechcú ani hostingy, ani majitelia webov. S dostatočným predstihom preto na tento problém začíname aktívne poukazovať.

Riziká a nevýhody starých verzií PHP

Z pohľadu používateľa, staré verzie PHP oproti novým zaostávajú najmä v oblasti bezpečnosti a výkonnosti.

Slabá bezpečnosť

Najsilnejším argumentom pre aktualizáciu PHP je bezpečnosť. Počas aktívnej podpory vychádzajú opravné aktualizácie, ktoré opravujú zistené nedostatky. Ich prehľad si môžete pozrieť napríklad na stránkach CVE Details. Na obrázku nižšie nájdete počet kritických chýb objavených v jednotlivých rokoch.

Zraniteľnosť PHP podľa rokov

Prehľad objavených bezpečnostných dier v PHP podľa rokov. Zdroj CVE Details.

Slabý výkon

Pred dvomi rokmi vydané PHP 7.0 prinieslo priam revolučné zrýchlenie stránok oproti predošlému PHP 5.6 (PHP 6 bolo vynechané). Najviac to bolo vidno na redakčných systémoch, ktoré dokázali spracovať niekoľkonásobne viac požiadaviek za rovnaký čas. O nameraných rozdieloch sme informovali pri spustení PHP 7 do prevádzky.

Prehľad distribúcie výkonnosti medzi PHP 5.6 a PHP 7.0.

Priemerný čas odozvy s PHP 7 (zelená čiara) je o cca 15 % lepší ako u PHP 5.6 s Opcache (plná modrá čiara).

Rozsiahle porovnanie výkonu jednotlivých verzií PHP (a HHVM) spravili nedávno aj „kolegovia“ z manažovaného WordPress hostingu Kinsta. Na PHP 7.2 dokáže WordPress a WooCommerce spracovať až 3x toľko požiadaviek ako na PHP 5.6. V prípade starších verzií 5.5 – 5.2 je rozdiel ešte väčší…

WordPress
Img src: Kinsta

Novšie verzie PHP sú vždy bezpečnejšie a výkonnejšie.  Aj moderné redakčné systémy ich často vyžadujú. Napríklad súčasná verzia WordPress oficiálne vyžaduje PHP 7.2, Drupal dokonca zruší podporu PHP 5.6 a starších v marci 2019.

Plán ukončenia nepodporovaných PHP verzií

Po rokoch našej dodatočnej podpory (aj viac ako 8 rokov v prípade PHP 5.2) plánujeme vo WebSupporte v roku 2019 definitívne ukončiť prevádzku vybraných PHP 5 verzií.

Zároveň chceme naštartovať proces pravidelnej údržby – okrem pridávania nových verzií PHP aj rýchlejšie ukončenie tých starých. Preto budúci rok vypneme aj PHP 7.0.

  1. Apríl 2019
    1. ukončenie podpory PHP 5.2 a aktualizácia hostingov na PHP 5.3
    2. ukončenie podpory PHP 7.0 a aktualizácia hostingov na PHP 7.1
  2. September 2019 – ukončenie podpory PHP 5.4 a 5.5 a aktualizácia hostingov na PHP 5.6.

Na serveroch zrejme až do roku 2021/2022 ponecháme PHP 5.6, dodatočne aj PHP 5.3 pre najstaršie weby, ktoré už neviete aktualizovať. Tieto verzie budeme na vlastné náklady udržiavať použiteľné a naši administrátori v nich budú opravovať kritické nedostatky. Dlhodobo ich používanie ale neodporúčame a do budúcna bude ich používanie pravdepodobne aj dodatočne spoplatnené.

Našich klientov budeme informovať postupne, vo vlnách. Ak sa vás týka aprílový termín, presné info od nás obdržíte počas najbližších týždňov. Po novom roku budeme oslovovať tých, ktorí spadajú do septembrového termínu.

Otestujte si kompatibilitu vášho webu

Aby sme Vám prechod na novšie verzie PHP čo najviac uľahčili, vytvorili sme pre vás nástroj na testovanie kompatibility. Pomocou tohto nástroja môžete bezpečne, iba vo vašom prehliadači a bez vplyvu na produkčnú stránku, otestovať funkčnosť webovej stránky na novšej verzii PHP. A ak všetko funguje ako má, môžete aktualizovať PHP ihneď a neodkladať to na poslednú chvíľu. Napríklad okamžitý prechod z PHP 5.5 na PHP 5.6 by podľa našich skúseností nemal predstavovať žiaden problém a môže byť vykonaný okamžite.

Nástroj na testovanie kompatibility PHP

Nástroj bude už čoskoro dostupný priamo vo WebAdmine.

Ako aktualizovať PHP na hostingu

Ak ste naším zákazníkom, zmeniť PHP verziu môžete kedykoľvek priamo cez WebAdmin, sekcia Web > PHP nastavenia. Podobne by to malo fungovať aj u iných poskytovateľov.

Ak používate hosting, ktorý vám neumožňuje prechod na niektorú z aktuálne podporovaných PHP 7 verzií, odporúčame poobzerať sa po novom hostingu. My vám radi ponúkneme viac. Do konca roku môžete využiť akciu Migrácia a získať od nás hosting zadarmo.

Komentáre