Kategórie
Novinky Technológie

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

Doba čítania: 7 min.

Každý rok končí oficiálna podpora najstaršej z podporovaných verzií PHP. 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. Plánujeme totiž 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 76 % 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 podľa PHP.net, máj 2024

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 30 % používa oficiálne podporovanú verziu PHP . Takmer 17 % používa čoskoro nepodporovanú verziu PHP 8.1, zvyšných 53 % používa ešte PHP 8.0 alebo staršie. Na túto nepriaznivú situáciu už v minulosti poukázali 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 jari 2024 vás možno prekvapí, no približne 75 % našich používateľov používalo na svojom hostingu jednu zo zastaraných verzií PHP 5.2 – 8.0. Dominuje najmä PHP 5.6 (dôvod nižšie). Koncom roka sa k nim pridá ďalšia skupina, ktorá používa verzie PHP 8.1 Oficiálna podpora verzie 5.6 skončila 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, jar 2024

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.6 najväčšie zastúpenie na našich hostingoch – dlhú dobu sme túto verziu ponúkali ako predvolenú a používatelia ju nikdy nezmenili.
  • 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

S každou novou verziou PHP sa výrazne zlepšuje výkonnosť webu. Čím novšia je verzia PHP, tým rýchlejšie sa načítava vaša stránka. Porovnali sme najnovšiu funkčnú verziu aplikácie WordPress (štandardná inštalácia) na rôznych verziách PHP. Ako vidíte, PHP 8.3 dokáže spracovať viac ako dvojnásobok požiadaviek za sekundu oproti PHP 5.6.  Približne rovnaké štatistiky vidíme aj pri iných redakčných systémoch, ako sú Joomla, Drupal a OpenCart. Takže okrem množstva dôležitých bezpečnostných výhod by váš web fungoval oveľa lepšie, ak by ste ho aktualizovali na najnovšiu verziu PHP.

Porovnanie výkonnosti PHP verzií
Porovnanie výkonnosti verzií PHP

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

Po rokoch našej dodatočnej podpory plánujeme vo Websupporte v roku 2024 definitívne ukončiť prevádzku vybraných PHP verzií.

Zatiaľ ponecháme verzie PHP 5.6, 7.4, 8.1-8.3. Ak používate inú verziu, vaše webové stránky budú presunuté na ďalšiu verziu PHP v poradí. 

  • PHP 5.3 – bude presunutá na verziu PHP 5.6,
  • PHP 7.x – bude presunutá na PHP 7.4,
  • PHP 8.0 – bude presunutá na PHP 8.2/8.3.

Tieto verzie budeme na vlastné náklady udržiavať použiteľné a opravovať kritické nedostatky. Dlhodobo ich používanie ale neodporúčame a do budúcna bude ich používanie dodatočne spoplatnené.

Našich klientov budeme informovať postupne, vo vlnách.

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 webu a PHP. 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. To isté platí aj pre PHP 8.0 na 8.2.

Nástroj na testovanie kompatibility PHP
PHP testovací nástroj je 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 >Služby>PHP nastavenia. V tomto návode nájdete informácie o tom, ako môžete otestovať a zmeniť verziu PHP na novšiu.

Podobne by to malo fungovať aj u iných poskytovateľov.

Ak vaša webová stránka nefunguje, keď vyskúšate novšiu verziu PHP, budet potrebné upraviť kód. Pozrite si tento návod z PHP.net, ako aktualizovať príslušný kód.

Pokiaľ používate WordPress, návod na aktualizáciu nájdete aj v našej Báze znalostí. Pre ďalšie redakčné systémy odporúčame oficiálnu dokumentáciu:

Ak používate hosting, ktorý vám neumožňuje prechod na niektorú z aktuálne podporovaných PHP verzií, odporúčame poobzerať sa po novom hostingu. My vám radi ponúkneme viac a za prechod od konkurencie vás odmeníme.

Pôvodný článok o ukončovaní starých PHP verzií sme publikovali v roku 2018. Informácie sme aktualizovali a starý článok sme upravili. 

Autor: Tím Websupport

Sme slobodná a otvorená firma. Robíme to, čo nás baví a chceme každou našou činnosťou posúvať štandardy vyššie.