Можно ли определить параметр overload в файле htaccess

Обновлено: 07.07.2024

CRON (от анлг. Command Run On) - планировщик задач в UNIX-образных операционных системах, использующийся для периодического выполнения заданий в заданное время.

Каждый пользователь системы имеет свой файл заданий crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноименная программа crontab, позволяющая не прерывать процесс CRON на время редактирования.

Можно ли использовать crontab?

Да. Вы можете установить задачи для выполнения по crontab из Панели управления, из раздела "CronTab".

Как настроить выполнение задачи на определённое время?

Вы можете настроить выполнение скриптов на определённое время через Панель Управления в разделе "CronTab". Заполнить время и путь до исполняемого файла и нажать "Добавить".

Время, интервал
Минуты могут быть от 0 до 59
Часы могут быть от 0 до 23
День месяца может быть от 1 до 31
Месяц может быть 1 до 12
День недели может быть от 0 до 7 (0 и 7 - воскресенье)
Можно конфигурировать crontab для выполнения задач не только в определенное время, но и ежеминутно, ежечасно, ежедневно, еженедельно или ежемесячно, используя комбинацию */x

Пример

  • */5 * * * * - запускать команду каждые пять минут
  • 0 */3 * * * - запускать каждые три часа
  • 0 12,13,14 * * * - запускать команду каждый час с 12 до 14

Команда

Необходимо задать путь до скрипта от домашнего каталога. Например:

Система сама подставит символ

/ (эта комбинация заменяет полный путь). Получится:

Если в конце пути поставить символ &, то скрипт будет работать в фоновом режиме. Установка этого символа необязательна.

Что такое файл .htaccess?

Каждый раз, когда поступает запрос на открытие web-страницы, сервер сначала анализирует .htaccess файл. .htaccess ищется в корневой web-директории, а затем по дереву директорий, пока не дойдет до директории, где находится запрашиваемая страница.

В .htaccess напишите следующее:

Как вызвать SSI директиву?

SSI директива может вызываться только в файлах с расширением .shtml

Я установил кодировку UTF-8, но сайт не работает корректно, что делать?

В файле .htaccess напишите следующую строчку:

Как установить страницу, открывающуюся по умолчанию при загрузке моего сайта?

В файле .htaccess напишите следующую строчку:

По умолчанию, если в .htaccess ничего не задано, открываются файлы индексных страниц, а именно: index.htm index.html index.shtml index.cgi index.php3 index.php index.php4 index.phtml index.wml

Как настроить переадресацию?

(эта строка должна быть введена без переносов)

Можно ли получать результат выполнения скриптов через crontab на email?

Да, можно. Вы можете задать email, на который Вы хотите получать результат работы Ваших скриптов, в Панели Управления Аккаунтом в разделе "CronTab".

Предположим, у Вас на Cron стоит PHP скрипт следующего содержания:

в случае, если указан корректный email, то на него в зависимости от времени запуска будет приходить письмо с текстом "C добрым утром", либо "Приятных снов", либо "Здравствуйте".

Как отменить кодировку по умолчанию?

Для того, чтобы отключить установку кодировки по умолчанию, в файл дополнительной конфигурации .htaccess можно добавить следующие строки:

Как включить ZLIB сжатие?

Включение происходит добавлением специальной директивы в виртуальный хост Apache. Сделать это можно в Панели Управления Aккаунтом, в разделе "Сайты", кликнув на значок PHP справа от нужного сайта и добавив следующее:

Как установить mbstring.func_overload?

Сделать это можно в Панели Управления Аккаунтом, в разделе "Сайты", кликнув на значок PHP справа от нужного сайта и добавив следующее:

Какое значение имеет allow_url_include на серверах, и можно ли его изменить?

По умолчанию allow_url_include on, однако при необходимости Вы можете его изменить. Сделать это можно в Панели Управления Аккаунтом, в разделе "Сайты", кликнув на значок PHP справа от нужного сайта и добавив следующее:

Всё время забываю, что в последних версиях PHP нельзя выставлять параметры модуля mbstring в .htaccess.

Пора выковать калёным железом где-нибудь на заметном месте:

В последних версиях PHP нельзя выставлять параметры модуля mbstring в .htaccess. Только в php.ini.

Не смотря на то, что в Битриксе всё ещё думают иначе:

25 Comments

Поставь в строку
php_admin_value mbstring.func_overload 7

и будет счастье

только конечно 2 а не 7

В файле виртуалхоста рулится через дерективу php_admin_value

Только это и помогло

php_admin_value mbstring.func_overload 2
php_admin_value mbstring.internal_encoding UTF-8

Да, остается только так и делать.

Добрый день. Не подскажите, можно ил указать директиву:
PHP_VALUE mbstring.func_overload 2
но исключив при этом одну папку. Чтобы директива не применялась к папке.
А то сея директива требуется для битрикса, а vbulletin с не не работает. Заранее спасибо!

Тоже интересует вопрос, как у Вадима!
Подскажите пожалуйста, можно ли как то исключить одну папку из параметра mbstring.func_overload 2.

php_admin_value mbstring.func_overload 0

php_admin_value mbstring.func_overload 2

Что то не работает ни один вариант. всё перепробовал. все волосы на голове выдрал. а битрикс определять переменную не хочет. во всех вариантах предложенных тут пишет при установке что mbstring.func_overload = 0 (кодировка utf-8 определилась из .htaccess) если же прописываю в апач переменную php_admin_value mbstring.func_overload 2 хост вообще перестаёт отзываться и денвер выводит ошибку 500

Oscora, Itachi261092, посмотрите ошибку в логах апача error/log, там указано в чем проблема, скорей всего.

Для тех,у кого проблемы с битриксом, но есть доступы к настройкам апача.

php_admin_value mbstring.func_overload 7
Order allow,deny
Allow from all

php_admin_value mbstring.func_overload 7
Order allow,deny
Allow from all

php_value mbstring.internal_encoding utf-8

в php версии 5.4 mbstring.internal_encoding меняется
только что проверил

Еще один аргумент в пользу обновления технологий. 🙂

Если у вас VPS Debian 7: ищите файл конфигурации по адресу: /etc/apache2/apache2.conf

В конце этого файла (для каждого сайта) вставляете такие строчки:

php_admin_value mbstring.func_overload 2
Order allow,deny
Allow from all

Нужно вставлять в .htaccess ?? или куда?

А у меня с php_admin_value ошибку выдаёт! Я на Open Server пытаюсь сделать, тоже 0 показывает и всё тут. Можно конечно в конфиге PHP разкомментировать строчку и поставить 2, но как быть с другими сайтами, которые не на битрикс?

php_admin_value лишнее, достаточно php_value.

В конфиге апача (не в .htaccess), можно прописать директивы для конкретной папки. В случае с несколькими сайтами, прописывайте mbstring в конфиге апача для конкретной папки.

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

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

mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2

Разработчики CMS предлагают менять эти параметры через файл .htaccess, но на большинстве современных конфигураций этот метод не работает. В этой статье мы поможем внести данные настройки в конфигурацию PHP.

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

Одним из методов изменения mbstring.func_overload и mbstring.internal_encoding является внесение настроек в файл .htaccess:

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2

Но, начиная с одной из версий php 5.2 данные настройки в файле .htaccess игнорируются интерпретатором этого языка программирования. К тому же, PHP может быть установлен в режиме, отличном от mod_php (модуль Apache), что приведет к ошибке 500 после внесения настроек в файл .htaccess.

Как изменить 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 можно выполнить, только обратившись в техническую поддержку хостинга.

php_admin_value mbstring.func_overload 2
php_admin_value mbstring.internal_encoding UTF-8

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

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

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

mbstring.func_overload = 2
mbstring.internal_encoding = UTF-8

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

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

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

Свежее обновление Битрикса. Необходимо удалить настройку PHP mbstring.func_overload

Битрикс всегда требовал настройку на сервере в виде:
php_value mbstring.func_overload = 2
php_value mbstring.internal_encoding = UTF-8

Эта устаревшая настройка, которая до сих пор тянулась из версии к версии. Из-за нее требовалось использовать специально настроенный сервер под Битрикс. Если вы используете виртуальную машину Bitrix VM, тут никаких проблем не было. Но если вы использовали виртуальный хостинг, то большинство таких хостингов не давали менять эту настройку и делали специальные тарифы для сайтов на 1С-Битрикс (которые, замечу, были дороже).
Сейчас же, если вы хотите запустить небольшой сайт, не требующий больших ресурсов, вы можете использовать любой виртуальный хостинг.

Но что же делать тем, кто увидел эту ошибку? А особенно тем, у кого после обновления поломалась часть функционала сайта или облачной CRM?

Как починить


Все просто. Если вы используете виртуальную машину Битрикса, вам нужно ее обновить до версии 7.4.4 и выше. В этих версиях удалена устаревшая опция mbstring.func_overload. После обновления все отлично заработает.
Если у вас несколько сайтов и один из них на непродленной лицензии Битрикса, который нельзя обновить, то только для него отдельно нужно будет прописать старую настройку mbstring.func_overload = 2.В этой статье написано как это сделать.

Если вы используете простой виртуальный хостинг, то обратитесь к техподдержке хостинга с просьбой убрать mbstring.func_overload.

Решение для Timeweb

Многие пишут о проблеме с обновлением на хостинге TimeWeb. На нем можно отключать и включать параметр mbstring.func_overload прямо в .htaccess. И при отключении ее там, получают ошибку, подробнее можете ознакомиться ниже в комментариях.

Несколько пользователей подтвердили решение проблемы:
Заходим в админке в Настройки -> Проактивная защита -> Проактивный фильтр и на вкладке исключения добавляем в исключения /bitrix/*

Как вариант, можете просто отключить проактивную защиту, обновиться и потом ее включить.

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

Зачастую заставить работать существующее PHP-приложение в многобайтовом окружении оказывается довольно трудной задачей. Это происходит, потому что большинство PHP-приложений написано с использованием стандартных функций обработки строк, таких как substr() , которые не умеют работать со строками в многобайтовых кодировках.

Для использования механизма перегрузки функций нужно задать настройке mbstring.func_overload в php.ini положительное значение, которое представляет собой комбинацию битовых масок, определяющих категории функций, которые нужно перегружать. Это будет число 1 для перегрузки функции mail() . 2 для строковых функций, 4 для функций регулярных выражений. Например, если значение настройки равно 7, то почтовые, строковые и функции регулярных выражений будут перегружаться. Список перегружаемых функций приведён ниже.

Функции, которые будут перегружены
значение настройки mbstring.func_overload исходная функция перегруженная функция
1 mail() mb_send_mail()
2 strlen() mb_strlen()
2 strpos() mb_strpos()
2 strrpos() mb_strrpos()
2 substr() mb_substr()
2 strtolower() mb_strtolower()
2 strtoupper() mb_strtoupper()
2 stripos() mb_stripos()
2 strripos() mb_strripos()
2 strstr() mb_strstr()
2 stristr() mb_stristr()
2 strrchr() mb_strrchr()
2 substr_count() mb_substr_count()

Замечание:

Не рекомендуется использовать перегрузку функций в контексте каждой директории, так как добиться стабильной работы в этом случае пока не удалось, и это может привести к неожидаемому поведению приложения.

Читайте также: