Битрикс: предупреждение «Размер стека и 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, но в моем случае этого не потребовалось.
Запускаем повторную проверку, проверяем, что замечание исчезло:

Опубликовано: 3 сентября 2020 года, в рубрике «Битрикс».

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

5000
  Подписаться  
Уведомление о
Поблагодарить автора статьи
Зачем это нужно