Битрикс ~ 2 мин

Битрикс: предупреждение «Размер стека и pcre.recursion_limit»

Исходные данные: сервер с Debian 10 + панель ISP Manager, версия PHP — старше 7.0.
Запускаем проверку системы — /bitrix/admin/site_checker.php.
В результате, в пункте «Размер стека и pcre.recursion_limit» видим предупреждение: «Замечание. Возможны проблемы в работе с длинными строками из-за системных ограничений». Детальный текст, призванный видимо нам помочь, выглядит так:

Если параметр pcre.recursion_limit превышает системный размер стека (обычно 8 Мб), то PHP падает с ошибкой Segmentation fault при выполнении сложных регулярных выражений.

Если нет возможности увеличить системный размер стека, необходимо уменьшить параметр pcre.recursion_limit. В этом случае PHP падать не будет, но обработка строк будет работать не всегда правильно: могут появляться пустые сообщения на форуме.

В общем-то все понятно, кроме того, что далее со всем этим делать. Предлагаемые гуглом и форумом БУС решения в моем случае не сработали, однако решается данная проблема крайне просто.

В настройках PHP находим переменную pcre.jit. По умолчанию она включена, т.е. имеет значение 1. Все что нам нужно сделать — установить значение равное нулю (pcre.jit=0).

Для верности — можно перезапустить службу Apache, но в моем случае этого не потребовалось.
Запускаем повторную проверку, проверяем, что замечание исчезло:

Комментарии

Оставить комментарий

Имя видно всем. Сообщения проходят модерацию. Правила обсуждения.

Обычно отвечаю до 18:00 МСК

Вопрос по статье?

Напишите — разберём на вашем проекте.

Написать в Telegram Без автоответчика · пн–пт

Обсудить задачуОтвет в рабочий день

Написать