Главная » Хабрахабр » PHP 5.x – старикам здесь (не) место

PHP 5.x – старикам здесь (не) место

Индустрия хостинга неразрывно связана с PHP, на котором полностью или частично написаны более 80% сайтов в Internet. Это сильно влияет на разработку любого софта, предназначенного для работы с хостингом — в том числе такого, как контрольная панель Plesk. Мы делаем продукт для автоматизации управления сервером, создания и конфигурации веб-сайтов и приложений, а значит, и для использования PHP. Одной из наших ключевых задач является необходимость поддерживать уже устаревшие версии PHP – сфера хостинговых услуг, как любой крупный рынок, довольно инертна, и переход на новый PHP происходит крайне медленно. Несмотря на то, что Plesk предоставляет пользователям самые свежие версии PHP в течение 48 часов после их релиза, миллионы сайтов продолжают работать на старых версиях, поэтому спрос на решения, которые могут предоставить их поддержку, остается высоким. Именно по этой причине Plesk продолжает поддерживать и EOLed-бранчи до PHP 5.2 включительно.
В то же время мы отдаем себе отчет, что риск использования устаревших версий 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 новому, пожалуйста, поделитесь ими в комментариях.


x

Ещё Hi-Tech Интересное!

Орден куколки

Прошу считать пятничным постом! Это как бы научная фантастика, но правда важный дисклеймер 1. Научная фантастика понятие очень широкое. Этот рассказ-эссе я смею предложить только тем, кто нормально относится к углу . Простите меня, если в вашем представлении научная фантастика ...

Трудоголизм — болезненное состояние, о котором не принято говорить

Тему профессионального выгорания не пинал на Хабре только ленивый. Были истории и о том, как с этим бороться, и рассказы людей, которые лично столкнулись с этой проблемой, и статьи вида «как избежать выгорания». На самом деле тема важная и нужная. ...