Dlaczego należy używać tylko PHP 5.6 i nowszych na serwerze?
Serwery hostingowe mogą obsługiwać różne wersje PHP, ale najlepiej wybierać te, które mają obsługę PHP 5.6 i nowszych (najlepiej wersji 7.1). Dlaczego tak jest, jaki wpływ ma PHP na bezpieczeństwo strony i czemu warto korzystać z wersji 7.1? Odpowiadamy na te pytania.
Zrozumienie różnic pomiędzy różnymi wersjami PHP nie należy do najłatwiejszych, zwłaszcza, że po przeczytaniu samej dokumentacji zostaniemy zasypani masą niezrozumiałych terminów. W końcu PHP to język programowania, a więc przy każdym nowym wydaniu pojawiają się zmiany zrozumiałe tylko dla programistów. Wersje PHP różnią się od siebie jednak nie tylko pod kątem samego programowania i reguł pisania kodu, ale także pod kątem bezpieczeństwa i wydajności, a te elementy można już zrozumieć nieco łatwiej.
Kiedy szukamy hostingu pod naszą stronę firmową lub sklep internetowy, warto zwracać uwagę na detale. Pojemność i limit miesięcznego transferu to jedno, ale oprócz tego ważne są rzeczy niewidoczne na pierwszy rzut oka. Zazwyczaj przyjmujemy, że obsługa PHP jest gwarantowana i więcej tego tematu nie zgłębiamy, a to błąd. Warto wiedzieć, jakie wersje PHP serwer obsługuje, jak taką wersję zmienić (i czy w ogóle jest to możliwe), a także jaki ma to wpływ na działanie strony.
Jaki wpływ ma wersja PHP na działanie strony?
Aplikacje internetowe oparte na języku PHP działają po stronie serwera, to znaczy wszystkie operacje związane z działaniem strony są wykonywane na naszym serwerze. Oznacza to, że serwer musi posiadać obsługę odpowiedniego interpretera PHP. Innymi słowy musi umieć porozumiewać się w tym języku z aplikacjami (stronami), które są na nim umieszczone i spełniać ich prośby. Przykładem aplikacji PHP jest WordPress, który w całości jest stworzony w oparciu o język PHP.
Serwery hostingowe mogą posiadać ustawioną na stałe jedną wersję PHP lub mogą dawać użytkownikowi możliwość wybrania, z jakiej wersji PHP mają korzystać. Taką opcję możemy czasem znaleźć w panelu administracyjnym i jest ona banalna do wykonania. Wystarczy w opcjach serwera znaleźć menu „Wersja PHP” wybrać wersję i zapisać zmiany. Jeśli takiej opcji nie ma w panelu, to wersję PHP często można zmienić za pomocą pliku .htaccess, który umieszczony jest w folderze ze stroną na serwerze. Zobacz, jak zmienić wersję PHP na serwerach w LH.
Wersje PHP potrafią różnić się od siebie pod kątem reguł pisania kodu. Niektóre funkcje mogą być inaczej zapisane dla wersji PHP 7.1 niż dla wersji PHP 5.4. W praktyce oznacza to tyle, że jeśli skrypt został stworzony pod kątem PHP 7.1, to może nie działać poprawnie lub odpowiednio wydajnie na starej wersji typu PHP 5.2 czy PHP 5.4.
Co więcej, wersja PHP ma duży wpływ na bezpieczeństwo oraz szybkość działania strony. Poszczególne wersje różnią się od siebie pod kątem optymalizacji, a posiadanie starej wersji, która nie jest aktualizowana wystawia naszą stronę na zagrożenie. To bardzo ważny element, któremu poświęcimy więcej uwagi w dalszej części artykułu.
Dlaczego nie należy używać PHP w wersji starszej niż 5.6?
Odpowiednia wersja PHP zapewni wysoki poziom kompatybilności serwera z działającymi skryptami, a także sprawi, że strona będzie działać szybciej i będzie bezpieczniejsza. Użycie starej wersji PHP może z kolei zmniejszać wydajność strony (będzie się wolniej wczytywać). Zwiększy się także obciążenie serwera, a nasza strona może być wystawiona na potencjalne ataki. Nie należy zatem używać wersji starszej niż 5.6.
Pierwszym powodem jest bezpieczeństwo. Starsze wersje interpretera, takie jak PHP 5.2 nie są już dalej rozwijane. Oznacza to, że jeśli pojawi się jakaś luka oparta na PHP 5.2, umożliwiająca włamanie się na stronę, to nikt nam jej nie załata i strona będzie niezabezpieczona.
Drugim powodem jest szybkość działania strony. Interpreter PHP odpowiada za odczytywanie, przetwarzanie, zrozumienie i wykonanie skryptów PHP. Z wersji na wersję staje się on szybszy i dużo wydajniej przetwarza kod, wykonując wszystkie potrzebne operacje na serwerze. Jest to widoczne zwłaszcza po przejściu z wersji PHP 5.4 na 5.6, gdzie nastąpił pierwszy duży skok wydajności. Szybsze wykonywanie skryptów po stronie serwera oznacza szybsze działanie całej naszej strony. Z kolei szybkość działania strony przekłada się bezpośrednio na tzw. konwersję.
Trzecim powodem są wymagania poszczególnych skryptów, CMS-ów i wtyczek do nich. Jako przykład niech posłuży nam niezwykle popularny WordPress. Jak każde oprogramowanie ma on swoje wymagania i zalecenia co do serwera i obsługiwanych wersji PHP oraz baz danych MySQL. Wymagania te zaczęły rosnąć z biegiem czasu – w 2015 roku zalecana była wersja PHP 5.6, a dziś zalecana wersja PHP 7.0 lub nowsze.
Nie oznacza to, że WordPress nie uruchomi się na serwerach ze starszą wersją PHP. Nadal można go instalować na serwerach z PHP 5.2, jednak wiążę się to z dość poważnymi minusami. Wersja 5.2 nie jest już wspierana i narażamy stronę na niebezpieczeństwo. Co więcej, o ile sam czysty WordPress na PHP 5.2 się uruchomi, to nie można liczyć na to, że będą działać wszystkie wtyczki i motywy. Wystarczy, że zostaną tam użyte nowe reguły odnośnie pisania kodu na podstawie wytycznych z PHP 5.6 lub 7.0 i strona wyświetli błąd krytyczny.
Różnice między PHP 5.6 i 7.1
Zalecana wersja PHP przez popularnego WordPressa to 7.0 lub nowsza. Jeśli więc mamy taką możliwość, to warto ją włączyć na serwerze. Trzeba jednak upewnić się, że nasza strona będzie kompatybilna z taką wersją. Jeśli korzystasz z WordPressa, to nie ma z tym problemu. Twórcy zalecają użycie PHP 7.0 lub nowszego. Nic więc nie stoi na przeszkodzie, aby skorzystać z najnowszego PHP 7.1
Największą zaletą wykorzystania PHP 7.0 lub 7.1 na serwerze jest zwiększenie wydajności. Od wersji 5.6 wzwyż doszło do dużej ilości ulepszeń pod względem szybkości wykonywania skryptów i zużycia pamięci. Badania wykonane przez Zend Performance Team potwierdzają, że tak jest. PHP 7.1 oferuje nawet podwójną szybkość działania i zużywa mniej zasobów serwera do obsłużenia tej samej liczby użytkowników.
test wydajności wordpress na różnych wersjach php
Widać to na powyższym porównaniu, które pokazuje ilość obsługiwanych zapytań na sekundę. W porównaniu do wersji 5.6, PHP 7 umożliwia obsłużenie podwójnej ilości zapytań. Dzięki temu większa ilość użytkowników będzie mogła korzystać z twojej strony w tym samym czasie bez obniżania szybkości działania strony. Te sama badania wykazały, że w przypadku Drupala wzrost wydajności potrafi wynieść nawet 72%. To także dobra wiadomość dla osób, które posiadają sklepy internetowe zbudowane na silniku Magento. Jest on znany z konieczności posiadania mocnego serwera. Dzięki PHP 7 serwer będzie mógł obsłużyć nawet trzy razy więcej transakcji w tym samym czasie niż na PHP 5.6.