Удалите устаревший параметр mbstring func overload

Изменение mbstring.func_overload и internal_encoding

Наши клиенты, установив одну из популярных систем управления сайтом, сталкивались с тем, что данная CMS требовала изменить стандартные настройки параметров PHP mbstring.func_overload и mbstring.internal_encoding.

В частности, система требует прописать настройки:

Почему не меняются mbstring.func_overload и internal_encoding?

Как изменить mbstring.func_overload и internal_encoding?

Изменить настройки mbstring.func_overload и mbstring.internal_encoding в современных конфигурациях можно несколькими способами, но до этого потребуется определиться с тем, какой услугой Вы пользуетесь (хостинг с php, VDS или сервер) и режимом работы php.

Если с первым вопросом проблем не возникнет, то с режимом php несколько сложнее. Узнать о режиме работы можно из функции phpinfo, найдя строку: «Server API», где может быть указано «Apache … Handler» или иное. Значение «Apache … Handler» укажет нам на то, что PHP работает в режиме mod_php, иное значение укажет на режим CGI или аналогичный.

Изменение настроек для режима mod_php

Изменение mbstring.func_overload и mbstring.internal_encoding в режиме модуля Apache на хостинге с PHP можно выполнить, только обратившись в техническую поддержку хостинга.

При использовании своего сервера (VPS/VDS или контейнера) достаточно будет внести изменения в настройки файла httpd.conf в секцию VirtualHost сайта, для которого вносятся изменения, где указать:

Изменение настроек для PHP в иных режимах

Изменить mbstring.func_overload и mbstring.internal_encoding в иных режимах, таких как: CGI, FastCGI и т.д., доступно, как на обычном хостинге, так и на собственном VDS или сервере.

В этом режиме изменение можно произвести простой модификацией пользовательского файла php.ini, где следует указать:

Универсальный метод изменения настроек

Мы сталкивались с конфигурациями систем, на которых отсутствовала возможность изменить параметры mbstring.func_overload и mbstring.internal_encoding, указанными выше методами.

В этом случае для хостинга единственным методом решения проблемы будет обращение в техническую поддержку.

Источник

Где и как можно исправить ситуацию.

Извините за неграмотность.

php_value mbstring.func_overload 0
mbstring.internal_encoding=ISO-8859-1

В русской раскладке всё заработает корректно. Перезагружать сервер не обязательно.

я забил. у меня поставилось. в инет магазине почта не отправляется, не пойму почему. Возможно изза этого.

ps. нет, не изза этого. конфиг этот подправил, все равно не отправляется(причем только при при оформлении заказа в инет магазине)
p.p.s. Почта отправлялась изза того что не хватало памяти. Перешли на тариф с 192 ОЗУ и все заработало.
а если выставлять mbstring = 0, единственный глюк что я нашел:

Читайте также:  Что чувствуют новорожденные дети

при включенном режиме правки, пытаемся редактировать параметры компонента, высвечивается окно которое должно быть с параметрами, и в нем сообщение:
«Не удалось обнаружить код вызова компонента.» Приходится править параметры компонента либо в исходнике(в коде вызова компонента), либо через визуальный редактор страницы.

Нет этой строки /etc/php.d/mbstring.ini:
Нельзя ли все это как то решить, раз и навсегда? У разного хостера одно и тоже? и везде надо все подписывать и дописывать?

Цитата
КОМАН СТИНС написал:
Можно mbstring.func_overload изменить «Местечково» например только для заданной папки где у вас работает скрипт требующий ее отключения. Делается на сервере под апачем тут etc/apache2/conf.d/httpd.conf, для виртуальной машины битрикс тут etc/httpd/conf/httpd.conf. Добавляем строки например для папки /personal/promo/

php_admin_value mbstring.func_overload 0

Как быть в ситуации когда надо его отключить для собственных печатных форм магазина?
Сами печатные формы лежат в /bitrix/admin/reports, но вызов происходит /bitrix/admin/sale_print.php. соответственно чтобы отключить mbstring.func_overload надо добавить

php_admin_value mbstring.func_overload 0

но в этой папке лежит много другого и результат может быть непредсказуемым

Цитата
Евгений Крохин написал:
На дворе конец 17-го, разрабы всё так-же оставляют этот скелет в шкафу, обосновавшийся там ещё времен безнадежно устаревшей кодировки, и даже мизинцем повести не желают. Это аргумент в «пользу».
Цитата
да прям вообще «трагедия века».
с учетом того что предоставляется готовое окружение и куча хостеров у которых одной кнопкой можно настроить совместимость сайта с bitrix

«Уважаемый», не говорите глупостей, чтобы не вам не сказали куда надо пойти.

Во вторых у меня на DEV-сервере крутится куча проектов, который я настраивал под свои нужды в то время, когда ещё ни кто не знал про Битрикс, и уже в то время всё прекрасно работало на UTF-8 безо всяких «сопель». И только Битрикс требует к себе подобного «внимания», сказать, что это настораживает, значит не сказать ни чего.

Данный функционал объявлен УСТАРЕВШИМ начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Ну т.е. такое. платная, недешевая система вот с такой вот детской болезнью.

В связи с обновлением многие будут искать, оставлю инструкцию что делать:

Источник

Ошибка: Удалите настройку PHP mbstring.func_overload

При обновлении коробочной версии Битрикс24 вы можете получить уведомление: Для обновления продукта необходимо удалить настройку PHP mbstring.func_overload. Пожалуйста, внесите необходимые изменения или обратитесь в службу технической поддержки вашего хостинга.

Что это значит

Функционал mbstring.func_overload объявлен устаревшим, начиная с PHP 7.2.0, и его использование крайне не рекомендовано.

В связи с этим в продуктах «1С-Битрикс» прекращается поддержка данного параметра PHP. Вы не сможете установить обновления продукта, пока вы не удалите этот параметр в конфигурации PHP вашего сервера.

Что делать

Перейдите в административном меню в раздел Настройки → Инструменты → Диагностика → Настройки PHP:

В открывшем окне найдите в настройках PHP параметр mbstring.func_overload :

Если его значение не равно 0, то вам нужно удалить этот параметр в конфигурации PHP сервера или выставить равным 0 ( mbstring.func_overload=0 ).

Чтобы выполнить эти рекомендации, вам нужно обратиться к вашему системному администратору или хостинг-провайдеру.

То же самое можно сделать и вручную в VMBitrix:

Источник

Установка Битрикс в кодировке UTF8 и проблема с mbstring.func_overload

It’s not possible to change it in perdir configs anymore. Fix for bug
#43227 changed this. Apparently Rui forgot to document it..smile:)

Вот собственно и вся новость. Думаю, что она будет полезна многим и снимет ряд вопросов.
У себя будем откатываться назад на PHP 5.2.6

Все ошибки пропали, все зеленым цветов в установке, начал устанавливать, все ок и тут на тебе:

У меня Виртуальная машина Битрикс 4.3 столкнулся с подобной проблемой на PHP 5.3 и решил ее! 8)

Писал в тех. поддержку следующее:

Доброго времени суток, на виртуальной машине Битрикс есть 2 сайта. Требуются следующие настройки:

Для сайта http://top.seoup.su/
mbstring.func_overload=0
mbstring.internal_encoding=utf-8

Для сайта http://seoup.su/
mbstring.func_overload=2
mbstring.internal_encoding=utf-8

Сделать разные настройки не получится.

Нужно выполнить следующие шаги, мне это помогло.

1. По умолчанию выставить mbstring.func_overload=0 в файле «/etc/php.d/custom/php.ini» если его нет, то создаем его! Внутри пишем

3. Убираем/закоментим на всякий случай определение в «.htaccess» в папке «/home/bitrix/www»

Теперь «Проверка системы» проходит без ошибок, и не показывается сообщение при свойствах или копировании компонента

Источник

Установка Битрикс в кодировке UTF8 и проблема с mbstring.func_overload

It’s not possible to change it in perdir configs anymore. Fix for bug
#43227 changed this. Apparently Rui forgot to document it..smile:)

Вот собственно и вся новость. Думаю, что она будет полезна многим и снимет ряд вопросов.
У себя будем откатываться назад на PHP 5.2.6

При установки битрикса на хостинге возникает такая проблема: для установки продукта в кодировке UTF-8 необходимо установить библиотеку mbstring с параметрами mbstring.func_overload больше 2, mbstring.internal_encoding=UTF-8.

В конфигурации PHP включен, несовместимый с phpMyAdmin, параметр mbstring.func_overload. Для предотвращения возможной потери данных, данный параметр должен быть выключен!
предупреждение в пхпадмин.

сделано как в UPDATED у автора.

мде.
удалите ссылочку, а то кто-нибудь прочитает.
во-первых, по ней бредовая инфа.
во-вторых, здесь в комментах описано решение.

в итоге запутался и не понял
что вписать в php.ini

define(‘BX_UTF’, true);
стоит

написали ведь выше

php_admin_value mbstring.func_overload 2
в httpd конкретного хоста

выложите фрагмент вашего конфигурационного файла и журнала ошибок веб-сервера

у вас используется http://www.suphp.org
suphp использует php-cgi, и не поддерживает php_admin value.

FreeBSD 8.2, Apache 2.2.17+Nginx, PHP 5.2.17(Fast-CGI), вылазят те же ошибки:

— mbstring.func_overload >=2 0
— mbstring.internal_encoding UTF-8 Не установлен

Попробовал раскомментировать в php.ini, результат тот же.

Перезапускал. Оказалось из домашней папки тянул настройки (home/xxxxx/data/php-bin/php.ini)

Решение через php.ini не нравится, так как на сервере крутится еще порядка 100 сайтов, которые удачно легли после изменения настроек, а из-за 1-го менять для всех.

Вырезки из http.conf (/usr/local/etc/apache22) для домена bitrix.site.ru

увы, в вашем случае уже не подскажу.
обратитесь к вашему системному администратору или читайте документацию

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

Все ошибки пропали, все зеленым цветов в установке, начал устанавливать, все ок и тут на тебе:

У меня Виртуальная машина Битрикс 4.3 столкнулся с подобной проблемой на PHP 5.3 и решил ее! 8)

Писал в тех. поддержку следующее:

Доброго времени суток, на виртуальной машине Битрикс есть 2 сайта. Требуются следующие настройки:

Для сайта http://top.seoup.su/
mbstring.func_overload=0
mbstring.internal_encoding=utf-8

Для сайта http://seoup.su/
mbstring.func_overload=2
mbstring.internal_encoding=utf-8

Сделать разные настройки не получится.

Нужно выполнить следующие шаги, мне это помогло.

1. По умолчанию выставить mbstring.func_overload=0 в файле «/etc/php.d/custom/php.ini» если его нет, то создаем его! Внутри пишем

3. Убираем/закоментим на всякий случай определение в «.htaccess» в папке «/home/bitrix/www»

Теперь «Проверка системы» проходит без ошибок, и не показывается сообщение при свойствах или копировании компонента

Источник

Читайте также:  мозаично шлифовальная машина что это
Образовательный портал