Дата последнего изменения: 02.09.2021
При обновлении старых сайтов в кодировке Windows-1251, созданных в VMBitrix версии 7.4.3 или ниже, могут быть следующие ошибки:
Не работает Система обновлений продуктов «1С-Битрикс» – требует наличия параметра mb_internal_encoding('Windows-1251');
в dbconn.php.
При включенных предупреждениях Система обновлений не работает из-за предупреждения: «PHP Warning: htmlspecialchars(): charset `latin' not supported, assuming utf-8».
Проверка системы выдает ошибку «Строковые функции strtoupper и strtolower работают некорректно».
При обновлении VMBitrix до версии 7.5 и выше данные ошибки в установленных ранее сайтах в кодировке Windows-1251 автоматически не исправляются, поэтому вам нужно исправить их вручную для каждого такого сайта.
Добавьте в файл /bitrix/php_interface/dbconn.php сайта строку:
mb_internal_encoding('Windows-1251');
В конфигурационном файле Apache для вашего сайта /etc/httpd/bx/conf/bx_ext_[ваш_сайт].conf замените строку:
php_admin_value default_charset latinна такую:
php_admin_value default_charset cp1251
И перезапустите Apache:
systemctl restart httpd.service
Проверьте, есть ли локаль ru_RU.cp1251 в системе. Если ответ 0 – значит локали ru_RU.cp1251 нет, если 1 – есть:
locale -a | grep ru_RU.cp1251 -ic
Если локали ru_RU.cp1251 нет, выполните команду:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
Далее добавьте в файл /bitrix/php_interface/dbconn.php вашего сайта в кодировке windows-1251 две строки:
setlocale(LC_ALL, 'ru_RU.CP1251' ); setlocale(LC_NUMERIC, 'C' );
И перезапустите Apache:
systemctl restart httpd.service
Все готово. Проделайте эти действия для каждого сайта с кодировкой windows-1251, установленного ранее.