В то же время мы отдаем себе отчет, что риск использования устаревших версий PHP — это не только слабая производительность и бедный функционал, но и потенциальные уязвимости, которые могут возникнуть в любой момент и обойтись владельцу сайта очень дорого. Если не подталкивать своих клиентов к обновлению хотя бы до PHP 5.6, то в случае появления уязвимости, к примеру, в PHP 5.2, за ней может последовать взлом тысяч сайтов и обвинения в использовании небезопасного софта. Поэтому начиная с новой версии Plesk Onyx 17.8, которая вышла в начале марта 2018, устаревшие версии PHP помечены в интерфейсе как Outdated.
Мы решили, что полностью прекратить поддержку старого PHP можно только убедившись, что процент работающих на нем сайтов пренебрежимо мал – в таком случае этот шаг не вызовет фрустрацию среди сколь угодно значимой части пользовательской аудитории. С этой целью мы провели статистическое исследование, призванное определить, какие версии PHP наиболее популярны среди пользователей Plesk. Его результатами — весьма, на наш взгляд, любопытными — мы и хотим поделиться.
Информацию о том, на каком PHP работают сайты наших клиентов, мы начали анализировать относительно недавно. Она собирается для двух последних релизов Plesk Onyx и охватывает около 15% сайтов, работающих на этих версиях Plesk. В статистику не вошли старые версии Plesk, где, возможно, используется более старый РНР, но это не кажется нам большой проблемой. Собранная информация о предпочтениях людей, использующих последние версии Plesk (а значит, являющихся самой лояльной к продукту частью аудитории), сама по себе является крайне показательной. Заставить обновиться тех, кто использует неподдерживаемые версии продукта на неподдерживаемых осях, мы не можем – более того, в их ситуации старый PHP, скорее всего, не самая большая беда. Рано или поздно эти пользователи перейдут на новые версии Plesk, и тогда их сайты окажутся доступными для нашей аналитики.
На текущий момент самыми свежими версиями РНР являются версии 7.1 и 7.2. Они активно поддерживаются производителем, что подразумевает регулярные обновления с багфиксами и исправлениями обнаруженных уязвимостей. Версии 5.6 и 7.0 помечены вендором как security fixes only – чинятся только критичные проблемы с безопасностью. Наконец, PHP 5.4 и 5.5 не поддерживаются ни в каком виде с 2016 года, их пользователям рекомендуется как можно скорее перейти на более свежие версии во избежание возможных проблем с безопасностью сайтов. Давайте посмотрим, насколько соблюдаются эти рекомендации и чего пользователи боятся сильнее – обновить РНР или стать жертвой очередной уязвимости.
Соотношение версий PHP по всем попавшим в выборку сайтам, работающим на Plesk, на начало марта 2018 выглядело так:
Как видно, в целом дела обстоят не блестяще – рекомендуемые вендором версии не попали в топ – более того, они вообще оказались в хвосте. Следующий логичный вопрос: насколько эта картина отличается от страны к стране? Самыми крупными странами, где популярность Plesk традиционно высока, являются Германия, США и Испания. С них и начнем.
Германия
Германия с обновлением PHP не спешит – тройку лидеров в этой стране сформировали PHP 5.5 (33% сайтов), PHP 5.6 (24%) и PHP 7.0 (13%). На рекомендуемых версиях 7.1 и 7.2 работает лишь 8% сайтов.
США
Соединенные Штаты на первый взгляд могут показаться ещё более консервативными. На первом месте вышел PHP 5.4 (28%), но ему в спину дышит РНР 5.6, сравнительная доля которого выше, чем в Германии – 27%. Интересно, что наиболее популярная в Германии версия 5.5 в США используется только на 7% сайтов.
Испания
В Испании всё несколько бодрее: 36% сайтов работают на PHP 5.6 – не самой свежей, но хотя бы поддерживаемой версии. Второе место у PHP 5.4 (22%), третье – уже традиционно за версией 7.0 (14%).
Любопытно, что в каждой из этих трёх стран первое место в рейтинге популярности принадлежало разным версиям. Это навело нас на мысль составить сводную таблицу, где каждой стране выборки соответствует наиболее популярная в ней версия РНР. Результаты перед вами:
Country | Most popular PHP version |
---|---|
Australia | 5.6 |
Austria | 5.6 |
Belarus | 5.6 |
Brazil | 5.6 |
Canada | 5.6 |
China | 4.4 |
Czech Republic | 5.6 |
Denmark | 7.0 |
Estonia | 5.6 |
Finland | 5.3 |
France | 5.6 |
Germany | 5.5 |
Great Britain | 5.6 |
Greece | 5.3 |
India | 5.4 |
Iran | 5.6 |
Italy | 5.6 |
Japan | 5.3 |
Kazakhstan | 5.5 |
Korea | 7.0 |
Latvia | 5.4 |
Lithuania | 7.1 |
Mexico | 5.4 |
Netherlands | 5.6 |
Norway | 5.6 |
Poland | 5.6 |
Romania | 5.6 |
Russia | 5.4 |
Spain | 5.6 |
Sweden | 5.6 |
Turkey | 5.4 |
Ukraine | 5.4 |
United States | 5.4 |
В номинации «Самая продвинутая страна» победила Литва – больше всего сайтов (38%) работают на версии 7.1! Повторить свой успех где-либо ещё PHP 7.1 пока не удалось – во всех остальных странах ни версия 7.1, ни версия 7.2 не поднялась выше 4 места.
Следующими в рейтинге “продвинутости” являются Южная Корея и Дания, где самой популярной версией PHP является 7.0 (51% и 34% соответственно). Эта версия PHP оказалась на втором месте в Нидерландах (19%), Австрии (17%) и Чехии (13%), уступая пальму первенства лишь PHP 5.6 (кстати, в Чехии на 5.6 работают целых 65% сайтов).
Что же творится в России? Увы, устаревший и небезопасный PHP – реальность и в нашей стране. Первенство с большим отрывом за PHP 5.4 (45%), аналогичная ситуация с украинскими сайтами (24%), а вот Беларусь оказалась более современной – на первом месте PHP 5.6 (40%). В Казахстане первое место занимает PHP 5.5 (32%).
Ещё хуже обстоят дела в Японии и Греции – там лидирует PHP 5.3 (30% и 37% от всех сайтов соответственно). Но самым консервативным оказался Китай: 44% сайтов здесь работают на PHP 4.4! Такого мы не встретили больше ни в одной стране.
Всего же в Китае на устаревших версиях РНР работает 77% сайтов. По этому показателю его опережает только Мексика – 78%. На третьем месте Россия (67% сайтов), замыкают же топ-5 поклонников старого РНР Казахстан (65%) и Япония (63%).
Рейтинг самых сознательных стран с наибольшей долей сайтов на свежем PHP (5.6 и новее) возглавляет Южная Корея – 85% сайтов. Второе место у Чехии (84%), третье – у Швеции (83%), дальше разрыв начинает расти – на четвертом месте Иран (73%), на пятом – Дания (69%).
Приведённая статистика наглядно свидетельствует, что говорить о прекращении поддержки версий PHP старее 5.6 пока рано – и не только в России. В то же время, как уже говорилось в начале статьи, мягко подталкивать людей в этом направлении определенно стоит. Со своей стороны, Plesk старается сделать переход на новый PHP как можно более комфортным и безболезненным. Предупреждая об устаревшем PHP, мы делаем следующее:
- учитываем в настройках по умолчанию, какой PHP поставляется вендором операционной системы;
- если производитель ОС предоставляет не самую последнюю версию РНР, дополняем комплект РНР-хэндлеров и предоставляем полный комплект, включая старые и новые версии;
- на новых инсталляциях предлагаем актуальные версии PHP (но не переключаем на них автоматом при обновлении со старых версий Plesk, чтобы не сломать работающие сайты).
Эти шаги уже начинают приносить плоды – за месяц, пока писалась эта статья, в общей выборке по всем странам на третье место вышел PHP 7.0, вытеснив из тройки лидеров PHP 5.5. Это значит, что мы идём в правильном направлении – надеемся, что все остальные будут двигаться в сторону безопасного web’a вместе с нами. Если у вас есть причины, по которым вы предпочитаете старый PHP новому, пожалуйста, поделитесь ими в комментариях.
Комментарии (19)
berezuev
30.03.2018 12:34Имхо, есть смысл сделать возможность выбирать несколько пунктов в опросе. А то сложно выбирать, когда имеется несколько проектов на разных версиях
belzoya Автор
30.03.2018 13:49Да, возможно стоило сделать множественный выбор. К сожалению, поменять тип опроса после публикации уже не получается, а если удалить и создать заново — потеряем тех, кто уже проголосовал. Будем рады узнать о вашем опыте ведения проектов на разных версиях PHP из комментариев :)
UksusoFF
30.03.2018 20:54-1Можно было бы сверху подписать "Какую минимальную версию РНР используете вы?" :)
UksusoFF
30.03.2018 12:57Если у пользователя старый php. Значит и Plesk тоже старый. И не собирает информацию о php. Разве нет?
belzoya Автор
30.03.2018 13:59У пользователей свежего Plesk-а, как оказалось, старого PHP тоже очень много, тем более, что мы пока его поддерживаем. Нам эта поддержка стоит ресурсов — именно поэтому мы и заинтересовались, насколько это в действительности актуально для наших клиентов.
grauru
30.03.2018 15:56Версия PHP не так сильно зависит от версии Plesk, сколько от версии OS — у многих остается стоковый PHP.
Plesk вначале начал давать возможность подключить самособранные PHP, а затем (тоже давно уже) начал поставлять дополнительные версии PHP сам, чтобы решить проблему с отсутствием нужной сборки и сложность сборки самостоятельной, но раньше не было известно — кто и что выбрал.
adictive_max
30.03.2018 13:18А вы не пробовали искать корреляции с наплывами пользователей?
К примеру, количество клиентов из России и Японии падает, поэтому большая часть проектов — легаси, в котором страшно что-то менять, а из Литвы и Кореи растёт, поэтому там больше свежих проектов с новыми версиями PHP?
Samouvazhektra
31.03.2018 07:58+1возможно еще причина в том, что панели больше предпочитают владельцы не особо продвинутые в администрировании, соответственно не стремящиеся что-то лишний раз менять, обновлять и перенастраивать, пока и так работает
VolCh
31.03.2018 10:20«Предпочитаете» неудачное слово, по-моему. Скорее или вообще таких нюансов не знают, или вынуждены.
Arris
31.03.2018 16:02Китай — версия 4.4
WTF…SerafimArts
02.04.2018 00:28Подозреваю, что это следствие «Великого файрволла».
oxidmod
02.04.2018 08:52+1Фаервол лочит репы с новой пыхой?
SerafimArts
02.04.2018 10:48А кто их знает. Это единственная возможная причина, которая пришла мне в голову. Есть какие-то другие предположения в причинах этой аномалии?
Akdmeh
Как ни странно, у меня совместимость поломалась не между 5.6 и 7.1, как можно было бы ожидать, а между 7.1 и 7.2 из-за появления ключевого слова Object.
В Yii2 это уже пофиксили, да никак не доходят руки накатить новую версию и перепроверить на сайте-стотысячнике.
Ну а обычно сложность только возникает, если используется mysql_ библиотека и просто из-за отсутствия штатных разработчиков, которые бы поддерживали актуальность скрипта. Многие сайты работают по принципу: «работает — не трогай».
grauru
Это самая большая проблема индустрии :(
К сожалению, чем дольше ждать, тем сложнее довести скрипт до новой версии
VolCh
Не факт, кстати. Если подготовка к переходу осуществляется путём анализа кода, то при каждом апдейте надо анализировать его полностью.