Восстанавливая сайт на 1С Битрикс из резервной копии, на шаге 3 "Восстановление базы данных" Вы можете столкнуться с предупреждением об ошибке:

Внимание! Сайт работал в одно байтовой кодировке, а конфигурация сервера рассчитана на кодировку UTF-8. Установите php_value mbstring.func_overload=0 или php_value mbstring.internal_encoding=ISO-8859-1.

Причина проблемы: Современное 1С Битрикс Веб окружение работает с сайтами в кодировке UTF-8. Если Ваш сайт старый, и Вы не устанавливали обновления ядра 1С Битрикс, скорее всего Ваш сайт работает в одно байтовой кодировке символов.

Ошибка Bitrix mbstring.internal_encoding и mbstring.func_overload

Решение проблемы:

Прежде чем нажать кнопку Восстановить, отредактируйте на Web сервере в корне своего сайта файл .htaccess:

vi /home/bitrix/www/.htaccess

Закомментируйте в файле .htaccess 2 строки и добавьте две другие строки с правильными значениями переменных окружения mbstring.internal_encoding и mbstring.func_overload:

#php_value mbstring.func_overload 2
#php_value mbstring.internal_encoding UTF-8

php_value mbstring.func_overload 0
php_value mbstring.internal_encoding cp1251

Обратите внимание! Bitrix рекомендует кодировку ISO-8859-1, а мы ставим cp1251, так уж у нас в России повелось.

Не правильно установленное значение переменной окружения mbstring.func_overload может приводить к различным ошибкам в работе Bitrix. Это - ошибки кодировки символов, ошибку авторизации на сайте и другие.

Некоторые переменные окружения можно объявлять в корневом для сайта файле .htaccess. В том числе, и для mbstring.func_overload в файле .htaccess можно добавить строчку:

php_value mbstring.func_overload 0

Где 0 значение параметра mbstring.func_overload. Обратите внимание, в файле .htaccess значение параметра указывается через пробел.

Однако, PHP версии старше 5.2 не читают mbstring.func_overload из файла .htaccess. В этой ситуации мы рекомендуем установить глобальную переменную mbstring.func_overload, например, вы можете добавить строчку в файл /etc/php.d/mbstring.ini:

vi /etc/php.d/mbstring.ini
; Enable mbstring extension module
extension=mbstring.so
mbstring.func_overload=0

Замечания:

  • Предыдущий пример из Centos 6.3 с установленным Bitrix Веб-окружением - Linux 4.2.
  • Если вы используете на сайте кодировку UTF-8, то значение mbstring.func_overload должно быть 2.

Проверить результаты изменений в веб окружении можно через Панель управления Bitrix в разделе Настройки > Инструменты > Настройки PHP:

mbstring.func_overload