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
UPDATED: подошло решение из комментариев. Принудительно включили глобально mbstring.func_overload =2, поставили по умолчанию кодировку 1251, а на нужных сайтах включили через .htaccess utf8.
(mbstring.func_overload =2) должен располагаться в php.ini,
А как к этому отнесутся остальные сайты, которые на cp1251? Или тогда прописать по умолчанию mbstring.internal_encoding на windows-1251, а в уникоде ставить уже правильный параметр .htaccess?
кракозябры - просто восхительный поисковый тэг. Я вот искал что угодно - от mbstring до php 5.2.9, а тут такое слово... Запишу в красную книгу и повешу на полочку.
Alex K., благодарю за предложенное решение. Оно сработало. Часто глобальное задание mbstring.func_overload 2 для хостинга неприемлемо так как противоречит требованием некоторых решений (phpBB например требует запрета на перегрузку, т.е. mbstring.func_overload 0). От себя добавлю, что php_admin_value mbstring.func_overload 0 работает также внутри <Directory> поэтому можно использовать, скажем, Битрикс + phpBB на одном хосте, задав для дирректории /forum/, к примеру, запрет на перегрузку.
Правильно ли я понял, что при использовании php.ini хостера Apachi нет никакой возможности изменить умолчание overload? т.е. все же придется ставить собственный php и колдовать? -)
При установки битрикса на хостинге возникает такая проблема: для установки продукта в кодировке UTF-8 необходимо установить библиотеку mbstring с параметрами mbstring.func_overload больше 2, mbstring.internal_encoding=UTF-8.
Если кто сталкивался, то решение простое: в файле .htaccess (в корне) за комментировано две строки, как раз нужных.
Пытался кстати тут сухосин не пришибать, а настроить. Вроде настроил. Потом заметил, что на сайте траблы со строковыми функциями (как будто перегрузка не включена или перекодировка неверно настроена). В общем, грешил на мбстринг, ковырялся ковырялся - всё верно настроено. Короче когда зашёл в тупик, отключил сухосин, всё сразу заработало. Блочит он чтоли перегрузку, я так и не понял. И как его подружить с mbstring - так и не нашёл.
В конфигурации PHP включен, несовместимый с phpMyAdmin, параметр mbstring.func_overload. Для предотвращения возможной потери данных, данный параметр должен быть выключен! предупреждение в пхпадмин.
Ребята подскажите пожалуйста, как правильно вписать php_admin_value mbstring.func_overload 2 в httpd файл? У меня после перезагрузки Apache выдает следующею ошибку:
Apache restart failed. Unable to load pid from pid file and no httpd process found in process list.
If apache restart reported success but it failed soon after, it may be caused by oddities with mod_ssl.
Вот мой фрагмент с поддоменом в который ставлю Битрикс. Файл взят от сюда - /usr/local/apache/conf/httpd.conf
<VirtualHost 194.xx.xx.xx:80>
ServerName bitrix.site.com
ServerAlias www.bitrix.site.com
DocumentRoot /home/site/public_html/bitrix
ServerAdmin webmaster@bitrix.site.com
UseCanonicalName On
CustomLog /usr/local/apache/domlogs/bitrix.site.com combined
CustomLog /usr/local/apache/domlogs/bitrix.site.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
## User stuffsh # Needed for Cpanel::ApacheConf
<IfModule mod_suphp.c>
suPHP_UserGroup site site
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup site site
</IfModule>
ScriptAlias /cgi-bin/ /home/site/public_html/bitrix/cgi-bin/
# To customize this VirtualHost use an include file at the following location
# Include "/usr/local/apache/conf/userdata/std/2/site/bitrix.site.com/*.conf"
</VirtualHost>
Перезапускал. Оказалось из домашней папки тянул настройки (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
А как же быть, если у нас на сервере есть сайты на Битриксе, которые хотят func_overload = 2 для UTF-8. И сайты на друпале, которые хотят func_overload = 0 для UTF-8? Остается только способ прописывания параметров в настройках виртуальных хостов?
Попробуйте так: 1. Сделайте изменения на вашем виртуальном сервере в php.ini, так как это необходимо 2. В файле .htaccess, где находится ваш Битрикс допишите следующее:
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/корень_сервера
<Files php.ini>
order allow,deny
deny from all
</Files>
</IfModule>
У меня под Linux Ubuntu , такая же петрушка. Проанализировав кодировки инсталера и распакованного битрикса enca-ом выяснил, что при установки кодировка 7bit ASCII и поэтому все инсталер пишет по-русски, а после инсталяции файлы в CP-1251 а в meta теги стоит UTF-8. Вот собственно в чем проблема. Конвертация файлов должна помочь. Еще нужно проверить кодировку БД и таблиц.
PS:Конвертация не помогла, точнее она помогла, если открыть файл в gedit , то там вместо кракозябр нормальный русский текст, но вот на сайте почему-то все равно ???? вместо русского. Подскажите у всех файлы после инсталяции принимают кодировку 1251?
Подскажите, у меня вирт.хостинг с php как FastCGI, два сайта на одном хостинге, на Битрикс и Kohana, одному нужен mbstring.func_overload=2, второму =0. php_value в .htaccess игнорируется. Все, мне надо выбирать какой из них будет работать?
Проблема может усложняться тем, что в довес или без апача стоит NGINX. Будьте внимательны и аккуратны при настройке сервера и переустановке битрикса!!!
У меня Виртуальная машина Битрикс 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
На что ответили
mbstring.func_overload=0
Этот параметр нельзя настроить из .htaccess, начиная с версии php 5.3
Сделать разные настройки не получится.
Не помогли!
Нужно выполнить следующие шаги, мне это помогло.
1. По умолчанию выставить mbstring.func_overload=0 в файле "/etc/php.d/custom/php.ini" если его нет, то создаем его! Внутри пишем
[mbstring]
mbstring.func_overload = 0
2. Устанавливаем mbstring.func_overload=2 для тех сайтов, где это нужно в файле "/etc/httpd/bx/custom/z_bx_custom.conf" Внутри пишем, где "/home/bitrix/www" полный путь к сайту на Битрикс
#
# Define custom settings
#
<Directory "/home/bitrix/www">
php_admin_value mbstring.func_overload 2
Order allow,deny
Allow from all
</Directory>
3. Убираем/закоментим на всякий случай определение в ".htaccess" в папке "/home/bitrix/www"
Дмитрий, отваливаются функции работы со строками. Причем отваливаются далеко не везде. Поэтому результат может быть неожиданным. Когда-то давно был случай - из-за неправильной настройки этого параметра не загружался визуальный редактор в публичной части
если нужно только для определенного сайта сделать на сервере, то в php.ini в самом конце добавляем [HOST=sait.ru] mbstring.func_overload=2 mbstring.internal_encoding=UTF-8 max_input_vars = 10000 realpath_cache_size=4M upload_max_filesize = 128M
Коленько Сергей, А как для локального сервера хост прописать, у меня к примеру на Open Server каталог с сайтом testsite.ru, я прописал в php.ini , но не работает, показывает ноль при установке, может на локально по другому прописывается? [HOST=testsite.ru] mbstring.func_overload=2
Андрей, я по сделал по совету в мануале Open Server, т.е. для каждого хоста копируется в директорию файл с настройками для апач, где и прописывается mbstring.func_overload=2 Впринципе всё работает, но в столбцах local и global по нулям
Понимаю, что уже прошло большое количество времени, но все же в знак уважения, что люди помогли решить другие проблемы которые возникнут так же после этого этапа,я расскажу как мне получилось поменять mbstring.func_overload 0 на mbstring.func_overload 2. Все действия проводились в Cpanel. Итак, необходимо 1.Найти раздел "Выбор версии PHP". 2. Перейти в настройки (рядешком подсвечено синей линией раздел "Разширение". 3. Найти необходимые слова и выставить свои значение, в нашем случае "2". Там же можете выбрать тайм зону, но у меня она не получилась (по какой то там причине и пришлось вводить руками в самом php.ini).
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».