Перевод Битрикс-проектов на php 7
1 июля 2016 компания 1С-Битрикс анонсировала версию 16.5 платформы “Управление сайтом”, а вместе с ней поддержку PHP версии 7. Это прекрасная новость, так как PHP7 работает примерно в 2 раза быстрее. Теоретически. В статье проверяем скорость работы Битрикса на PHP7 на деле.
Переход рекомендован ВСЕМ! А в особенности тем, кого хостинг ругает за слишком высокую нагрузку на процессор.
Статья о том, как перевести на PHP 7 сайт, размещенный на хостинге TimeWeb. Для других хостингов процедура аналогичная. По итогам замеряем скорость.
Исходные данные
- Подопытный: сайт нашего отдела маркетинга http://webup.ru/
- Версия PHP: 5.6
- Хостинг: TimeWeb Eterno
- Оценка производительности
78 -- очень неплохо. Это соответствует времени генерации главной страницы = 1/78 секунды.
Моем руки
- Делаем бекап сайта
- Готовимся редактировать файлы НЕ через административную панель сайта. Мы будем редактировать конфигурационные файлы хостинга. Если в них допустить ошибку, сайт перестанет открываться. Поэтому редактирование нужно выполнять либо через интерфейс хостинга, либо через SSH/FTP.
- Убеждаемся, что конфигурация хостинга корректна с точки зрения 1С-Битрикс. Для этого запускаем проверку системы (Настройки → Инструменты → Проверка системы).
В результатах проверки не должно быть красных строк.
Переводим сайт на PHP 7
1. Проверяем, что используется новая версия драйвера базы данных: MySqli. Как проверить и как перейти на новую версию описано в блоге 1С-Битрикс https://dev.1c-bitrix.ru/community/blogs/vad/the-new-kernel-and-the-mysqli-extension.php .
2. Меняем версию PHP в настройках хостинга
3. Корректируем 1 цифру в файле .htaccess
4. Снова выполняем проверку сайта и убеждаемся что не появилось новых ошибок. См. пункт 3 в разделе “Моем руки”.
5. В админ. панели в разделе “Настройки → Производительность → PHP” проверяем версию PHP. Минимально допустимая 7.0.8. В предыдущих версиях были серьезные ошибки. Для некоторых из них был сделан workaround в ядре Битрикса, но не для всех.
А теперь самое интересное
Снова смотрим на оценку производительности
Как видим, количество баллов производительности (в наших кругах “попугаев”) увеличилось в 2 раза. По информации от 1С-Битрикс увеличение может достигать 3-х раз и учитывая увиденное, этому можно верить.
Примечание №1 : препятствием к переходу на PHP7 могут стать модули из Marketplace.
Во-первых, в самом языке ужесточились правила написания кода. Например, в статических/нестатических методах и способах обращения к ним.
Во-вторых, после перевода на PHP7 нельзя будет установить из Marketplace демо-версии платных модулей, если по ним не было выпущено обновлений после 1 июля 2016. Это связано с изменением механизма защиты этих модулей.
Примечание №2 : обновление для виртуальной машины 1С-Битрикс ожидаем в сентябре. Если Ваш сайт развернут именно так, рекомендую подождать.
Подводя итог, могу сказать что получить такое ускорение сайта на битрикс за десятки минут это просто сказка. Матерые программисты подтвердят, что никакой рефакторинг кода никогда не даст такого прироста.
А для тех кто пропустил презентацию, вот то самое видео с рассказом о приросте скорости от Сергея Рыжикова