Индустрия хостинга неразрывно связана с 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 новому, пожалуйста, поделитесь ими в комментариях.

Комментарии (19)


  1. Akdmeh
    30.03.2018 11:10

    Как ни странно, у меня совместимость поломалась не между 5.6 и 7.1, как можно было бы ожидать, а между 7.1 и 7.2 из-за появления ключевого слова Object.
    В Yii2 это уже пофиксили, да никак не доходят руки накатить новую версию и перепроверить на сайте-стотысячнике.
    Ну а обычно сложность только возникает, если используется mysql_ библиотека и просто из-за отсутствия штатных разработчиков, которые бы поддерживали актуальность скрипта. Многие сайты работают по принципу: «работает — не трогай».


    1. grauru
      30.03.2018 15:58

      сложность только возникает… просто из-за отсутствия штатных разработчиков, которые бы поддерживали актуальность скрипта. Многие сайты работают по принципу: «работает — не трогай».


      Это самая большая проблема индустрии :(
      К сожалению, чем дольше ждать, тем сложнее довести скрипт до новой версии


      1. VolCh
        31.03.2018 10:26

        Не факт, кстати. Если подготовка к переходу осуществляется путём анализа кода, то при каждом апдейте надо анализировать его полностью.


  1. berezuev
    30.03.2018 12:34

    Имхо, есть смысл сделать возможность выбирать несколько пунктов в опросе. А то сложно выбирать, когда имеется несколько проектов на разных версиях


    1. belzoya Автор
      30.03.2018 13:49

      Да, возможно стоило сделать множественный выбор. К сожалению, поменять тип опроса после публикации уже не получается, а если удалить и создать заново — потеряем тех, кто уже проголосовал. Будем рады узнать о вашем опыте ведения проектов на разных версиях PHP из комментариев :)


      1. UksusoFF
        30.03.2018 20:54
        -1

        Можно было бы сверху подписать "Какую минимальную версию РНР используете вы?" :)


  1. UksusoFF
    30.03.2018 12:57

    Если у пользователя старый php. Значит и Plesk тоже старый. И не собирает информацию о php. Разве нет?


    1. belzoya Автор
      30.03.2018 13:59

      У пользователей свежего Plesk-а, как оказалось, старого PHP тоже очень много, тем более, что мы пока его поддерживаем. Нам эта поддержка стоит ресурсов — именно поэтому мы и заинтересовались, насколько это в действительности актуально для наших клиентов.


    1. grauru
      30.03.2018 15:56

      Версия PHP не так сильно зависит от версии Plesk, сколько от версии OS — у многих остается стоковый PHP.

      Plesk вначале начал давать возможность подключить самособранные PHP, а затем (тоже давно уже) начал поставлять дополнительные версии PHP сам, чтобы решить проблему с отсутствием нужной сборки и сложность сборки самостоятельной, но раньше не было известно — кто и что выбрал.


  1. adictive_max
    30.03.2018 13:18

    А вы не пробовали искать корреляции с наплывами пользователей?
    К примеру, количество клиентов из России и Японии падает, поэтому большая часть проектов — легаси, в котором страшно что-то менять, а из Литвы и Кореи растёт, поэтому там больше свежих проектов с новыми версиями PHP?


  1. xFFFF
    30.03.2018 15:21

    Обновился на PHP 7.2 — люблю всё новое.)


  1. Samouvazhektra
    31.03.2018 07:58
    +1

    возможно еще причина в том, что панели больше предпочитают владельцы не особо продвинутые в администрировании, соответственно не стремящиеся что-то лишний раз менять, обновлять и перенастраивать, пока и так работает


  1. Skull
    31.03.2018 09:48

    Какие ужасные диаграммы — сразу 3 синих цвета. Я так ничего не понял, без графического редактора я так и не понял где PHP 5.5 а где 7.2


    1. TheShock
      02.04.2018 00:39

      Они справа идут в порядке уменьшения — понять версии можно таким способом.


  1. VolCh
    31.03.2018 10:20

    «Предпочитаете» неудачное слово, по-моему. Скорее или вообще таких нюансов не знают, или вынуждены.


  1. Arris
    31.03.2018 16:02

    Китай — версия 4.4

    WTF…


    1. SerafimArts
      02.04.2018 00:28

      Подозреваю, что это следствие «Великого файрволла».


      1. oxidmod
        02.04.2018 08:52
        +1

        Фаервол лочит репы с новой пыхой?


        1. SerafimArts
          02.04.2018 10:48

          А кто их знает. Это единственная возможная причина, которая пришла мне в голову. Есть какие-то другие предположения в причинах этой аномалии?