Андрей Боровик написал: нашел одно решение: при восстановлении, когда выскакивает сообщение
Цитата
Внимание! Сайт работал в кодировке UTF-8. Конфигурация сервера не соответствует требованиям, установите mbstring.func_overload=2 и mbstring.internal_encoding=UTF-8.
при условии, что архив уже распакован, надо зайти в редактирование файла /bitrix/php_interface/dbconn.php и закомментить строку
Цитата
define("BX_UTF", true);
после успешной установки раскомментить ее обратно.
Важно. При восстановлении БД в этот файл дописываются данные доступа, поэтому на время восстановления надо его закрыть. или переоткрыть снова после восстановления.
Параметры настройки UTF (mbstring и константа BX_UTF) : Ошибка! Сайт работает в UTF кодировке, настройки mbstring: mbstring.func_overload=0 mbstring.internal_encoding= требуется: mbstring.func_overload=2 mbstring.internal_encoding=utf-8 _____________________________ на самом деле все просто в /.htaccess:
dianara86 написал: Параметры настройки UTF (mbstring и константа BX_UTF) : Ошибка! Сайт работает в UTF кодировке, настройки mbstring: mbstring.func_overload=0 mbstring.internal_encoding= требуется: mbstring.func_overload=2 mbstring.internal_encoding=utf-8 _____________________________ на самом деле все просто в /.htaccess:
Сегодня переносил битрикс на инфобокс, была аналогичная проблема. Сразу хочу отметить, если php работает в режиме CGI, изменение в .htaccess ничего не даст, да и через директивы php_flag. Решение таково: 1. Необходимо создать в корне сайта php.ini с необходимыми параметрами. 2. В .htaccess прописать (если его нет создать) путь до директории сайта (путь абсолютный) "suPHP_ConfigPath /абсолютный путь до сайта"
Марат Димаев написал: Цитата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
Открываем файл /etc php.ini находим через ctrl+f закомментированные строки ;mbstring.internal_encoding= и ;mbstring.func_overload=
Убираем ; Заменяем на mbstring.internal_encoding=utf-8 и mbstring.func_overload=2 нажимаем ctrl+s
Заходим в терминал выходим из меню- 0 enter копируем это sudo systemctl restart httpd.service Затем вставляем через shift + insert и перезагружаем apache Продолжаем установку.
При восстановлении резервной копии сайта на CMS 1с битрикс на сервере возникла ошибка как на скриншот ниже, а именно по тексту:
Сайт работал в кодировке UTF-8. Конфигурация сервера не соответствует требованиям, установите mbstring.func_overload=2 и mbstring.internal_encoding=UTF-8.
Для решения этой проблемы существует несколько способов, поговорим поподробнее об одном из них:
Первое что необходимо сделать это перейти в корневую папку сайта на FTP. Далее заходим в папку /bitrix/php_interface/
Открыть файл с названием: dbconn.php и найти строку define("BX_UTF", true); И комментим эту строку на время разворачивания бэкапа.
Теперь жмем на кнопку "Попробовать снова"
ВНИМАНИЕ! При восстановлении БД в этот файл дописываются данные доступа, поэтому на время восстановления надо его закрыть или переоткрыть снова после восстановления.
После этой манипуляции система успешно развернет резервную копию сайта. ВНИМАНИЕ! После успешного восстановление сайта необходимо раскомментировать строку.
На хостинге Бегет: в настройках сайта, (когда выбираем UTF-8) она появляется автоматически, удаляем эту строку. Восстановить можно - для этого еще раз нажать utf-8, она опять появится, нажать "Применить"
У меня тоже проблема mbstring.func_overload, но немного другого характера На хостинге размещен сайт на битриксе и форум phpbb3 при попытке вставить цитату на форуме в ответ выскакивает ошибка "Incorrect string value: '\xD0\xD0\x9D\xD1\x83 ...' for column 'post_text' at row 1 [1366]"