Битрикс: переход на PHP 7

Перейти к полному списку частых вопросов

Последние версии Битрикса полностью совместимы с PHP 7.0.

Для переключения сайта на пхп 7 необходимо в контрольной панели кликнуть на сайт и в разделе Приложения - выбрать Apache 2.4 + PHP 7.

Переход на PHP 7 позволяет получить примерно двухкратный прирост скорости работы сайта и небольшую экономию памяти.

Обязательно проверьте

Необходимо использовать расширение mysqli вместо mysql. Если вашему сайту много лет - возможно у вас в конфигах используется mysql, которого нет в PHP 7.

Для того, чтобы использовать mysqli, необходимо отредактировать два конфигурационных файла.

Важно - это необходимо делать по ftp/sftp. Если вы будете делать это через редактор битрикса - что-то может пойти не так и сайт перестанет работать.

В файле /bitrix/php_interface/dbconn.php нужно добавить, если нет, в конец строчку define("BX_USE_MYSQLI", true);

В файле /bitrix/.settings.php убедиться, что className выглядит так: 'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',

Целиком соответствующий блок выглядит примерно так: 'connections' => array ( 'value' => array ( 'default' => array ( 'className' => '\\Bitrix\\Main\\DB\\MysqliConnection', 'host' => 'localhost', 'database' => 'b1234', 'login' => 'b1234', 'password' => '*****', ), ), ),

Важные нюансы

  1. Хотя Битрикс полностью совместим с PHP 7 - в текущий момент никак не проверяется, что приложения, установленные из маркетплейса, так же совместимы с пхп 7. Они могут оказаться несовместимы.
  2. После перехода на PHP 7 нельзя будет установить из Marketplace демо-версии платных модулей, если у них не было выпущено обновлений после 1 июля 2016. Это связано с изменением механизма защиты этих модулей.

Если после переключения на пхп 7 сайт перестал работать:

  1. проверьте, используется ли mysqli в обоих конфигах
  2. проверьте, нет ли несовместимых с пхп 7 расширений из маркетплейса или в самописном коде
  3. проверьте, не допустили ли вы ошибки при редактировании или сохранении конфигурационных файлов
Тэги: bitrix, php