@Senseich

Как изменить значение php_value mbstring.func_overload для определенного сайта на локальном сервере?

Всем привет! Я уже сталкивался с данной проблемой, но в рамках одного движка, суть в следующем:
Устанавливаю на Open Server 1C Битрикс, мне выдаёт ошибку https://prnt.sc/gsqrgz
Раньше я просто прописывал php_value mbstring.func_overload 2 в файле .htaccess, либо в php.ini.
Но если прописывать в php.ini, то это правило распространяется на все сайты, и некоторые движки отказываются работать и требуют обратно php_value mbstring.func_overload 0.
А в .htaccess уже не пропишешь, начиная с версии php 5.3, не воспринимает и всё.
От сюда вопрос, можно как то для отдельного сайта, например для сайта на битрикс прописать php_value mbstring.func_overload 2, чтобы для остальных оставалось значение по умолчанию? В интернете много почитал, но так четкого ответа не нашел.
  • Вопрос задан
  • 6941 просмотр
Решения вопроса 1
gromdron
@gromdron
Работаю с Bitrix24
Правильно вам коллеги советовали, но я расскажу еще один путь:

1) Открываем меню в трее: Дополнительно -> Конфигурация -> Apache 2.* (у меня 2.4) (выбираем пункт)
2) У вас откроется редактор с примерно таким кодом:
#-----------------------------------------------#
# Начало блока конфигурации HTTP хоста
#-----------------------------------------------#

<VirtualHost *:%httpport%>

    DocumentRoot    "%hostdir%"
    ServerName      "%host%"
    ServerAlias     "%host%" %aliases%
    ScriptAlias     /cgi-bin/ "%hostdir%/cgi-bin/"

</VirtualHost>

У меня OpenServer находится на диске E, соответственно путь до папки с битриксом получается такой: E:/OpenServer/OpenServer/domains/dev

Вписываем волшебный кусочек кода:
<Directory "E:/OpenServer/OpenServer/domains/dev">
	AllowOverride All
	php_admin_value mbstring.func_overload 0
</Directory>

Чтобы получилось на подобии этого:
#-----------------------------------------------#
# Начало блока конфигурации HTTP хоста
#-----------------------------------------------#

<VirtualHost *:%httpport%>

    DocumentRoot    "%hostdir%"
    ServerName      "%host%"
    ServerAlias     "%host%" %aliases%
    ScriptAlias     /cgi-bin/ "%hostdir%/cgi-bin/"
	
	<Directory "e:\openserver\openserver\domains\cli">
		AllowOverride All
		php_admin_value mbstring.func_overload 0
	</Directory>
	
	<Directory "E:/OpenServer/OpenServer/domains/dev">
		AllowOverride All
		php_admin_value mbstring.func_overload 0
	</Directory>

</VirtualHost>

Сохраняем файл

3) Перезагружаем OpenServer (желтый флажок)

Примечание: метод работает только в web окружении, в консоли вы будете по-прежнему со значениями из Вашего php.ini файла
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rema1ns
@Rema1ns
и так сойдет
php.ini
[HOST=www.site.ru]
mbstring.func_overload=2


либо
ini_set('mbstring.func_overload' , 2);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы