Марат Димаев написал: Цитатаhttp://dev.1c-bitrix.ru/community/webdev/user/40749/ написал: нашел одно решение: при восстановлении, когда выскакивает сообщение ЦитатаВнимание! Сайт работал в кодировке UTF-8. Конфигурация сервера не соответствует требованиям, установите mbstring.func_overload=2 и mbstring.internal_encoding=UTF-8. при условии, что архив уже распакован, надо зайти в редактирование файла /bitrix/php_interface/dbconn.php и закомментить строку Цитатаdefine("BX_UTF", true);после успешной установки раскомментить ее обратно.
Важно. При восстановлении БД в этот файл дописываются данные доступа, поэтому на время восстановления надо его закрыть. или переоткрыть снова после восстановления.Спасибо огромное, http://dev.1c-bitrix.ru/community/webdev/user/40749/
И так, на дворе 2020, а проблема все еще не решена на стороне CMS. У меня php7.3 и apache2.4. Мне помог ответ Анна Цыганкова. А именно: 1) Изменил настройки в файле /etc/apache2/sites-available/bitrix.mysite.ru.conf
Код
<VirtualHost *:80>
ServerName bitrix.mysite.ru
ServerAlias www.bitrix.mysite.ru
ServerAdmin admin@bitrix.mysite.ru
DocumentRoot /var/www/bitrix.mysite.ru/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# начало изменений
<Directory "/var/www/bitrix.mysite.ru/www">
php_admin_value mbstring.func_overload 2
Order allow,deny
Allow from all
</Directory>
№ конец изменений
</VirtualHost>
1) Далее из под консоли перезагрузил apache командой "sudo systemctl restart apache2", и тут же проверил, все ли нормально, командой "sudo systemctl status apache2".
Здравствуйте И так, на дворе 2020, а проблема все еще не решена на стороне CMS. Версия Php 7.4 Редактирование файла ".htaccess" , что тут нужно изменить?
Хочу сообщить, что начиная с версии PHP 7.3 значение mbstring.func_overload не выставить индивидуально для конкретного сайта, ни через .htaccess, ни через конфигурационный файл Apache. Можно прописать в нем, как тут рекомендовали выше
Цитата
php_admin_value mbstring.func_overload 2
и даже в phpinfo() оно отразится как будто выставлено, значение "2", Но реально работать не будет, тестирование Битрикса выдаст ошибку: "Ошибка! Строковые функции работают некорректно." И это не какие-то наши индивидуальные особенности: https://qna.habr.com/q/687179
Единственный способ, который удалось найти - это указать значение mbstring.func_overload непосредственно в файле php.ini Но если php.ini общий для всех, то могут перестать работать другие сайты на этом же сервере, которые не на Битриксе, или на Битриксе, но в кодировке 1251. Получается, необходимо поддерживать отдельный сервер для сайтов на Битриксе в кодировке utf-8.
Хочу заметить, что разработчиками PHP данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.
Хотелось бы привлечь внимание разработчиков к этой проблеме.
В последних обновлениях происходит массовая смена строковых функций на mb_* аналоги, а значит нас скоро ждет отказ от костыля func_overload и поддержка php 8