При установке сайта на Битрикс на сервер с PHP 7.1 и выше сталкиваемся со следующей проблемой: в административном интерфейсе отваливается стартовый рабочий стол.
Битрикс оповещает об этом следующим экраном:
Идем в файл .settings.php, который находится в 16+ версии в следующей локации:
/bitrix/.settings.php
В конфиг-файле включаем вывод ошибок:
'exception_handling' => array (
'value' => array (
'debug' => false,
После этого обновляем страницу административного интерфейса и видим вот это:
Таким образом, Битрикс хочет нам сказать, что у него возникла проблема несовместимости при обработке текстовых переменных в следующих скриптах:
[Error]
[] operator not supported for strings (0)
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/checklist.php:476
#0: CCheckListResult::GetList(array, array)
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/checklist.php:52
#1: CCheckList->__construct()
/var/www/alkc/data/www/alkc/bitrix/gadgets/bitrix/admin_checklist/index.php:17
#2: include(string)
/var/www/alkc/data/www/alkc/bitrix/components/bitrix/desktop/include.php:105
#3: BXGadget::GetGadgetContent(array, array)
/var/www/alkc/data/www/alkc/bitrix/components/bitrix/desktop/component.php:823
#4: include(string)
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/component.php:548
#5: CBitrixComponent->__includeComponent()
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/component.php:600
#6: CBitrixComponent->includeComponent(string, array, boolean)
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/main.php:1035
#7: CAllMain->IncludeComponent(string, string, array, boolean, array)
/var/www/alkc/data/www/alkc/bitrix/modules/main/interface/desktop.php:35
#8: require(string)
/var/www/alkc/data/www/alkc/bitrix/admin/index.php:2
Чтобы исправить эту несовместимость идем по следующим адресам:
/bitrix/modules/iblock/classes/general/iblockproperty.php, здесь ищем 20 строку и в ней исправляем:
Было:
$arSqlSearch = "";
Стало:
$arSqlSearch = [];
Теперь идем в: /bitrix/modules/main/classes/general/checklist.php и вносим исправления здесь на 472 строчке, выполняем все так же:
Было:
$arSqlWhere = "";
Стало:
$arSqlWhere = [];
После чего все работает без ошибок.