Как настроить CentOS 7, чтобы Bitrix не ругался на pcre.recursion_limit?

Аватар пользователя admin

У многих системных администраторов возникают трудности при настройке хостинга для Bitrix в CentOS 7. Проблема заключается в том, что Bitrix при проверке настроек системы в админке выводит предупреждение касательно параметра pcre.recursion_limit: Замечание. Возможны проблемы в работе с длинными строками из-за системных ограничений. Что делать в CentOS 6 понятно, там даже подсказка даётся про ulimit -S, а вот что делать в CentOS 7 с его systemd? Рассказываю.

Действительно, в CentOS 6 с его SystemV init можно было просто поправить скрипт запуска службы, добавив ulimit -S, а в CentOS 7 всё работает через systemd, поэтому придётся играть по правилам systemd. И чтобы играть по этим правилам необходимо вначале определиться, какая служба у нас в системе отвечает за работу PHP, ведь режимы работы PHP бывают разными, например apache+mod_php, apache+mod_fcgi или php-fpm. В сухом остатке нам нужно знать ИМЯ СЛУЖБЫ, которая запускает PHP.

Допустим речь идёт об apache+mod_php. Тогда имя службы будет httpd. Итак, создаём каталог: /etc/systemd/system/httpd.service.d, в котором создаём файл limits.conf следующего содержимого:

[Service]
LimitSTACK=infinity


Теперь всё что нужно сделать, это выполнить команды:

systemctl daemon-reload
systemctl restart httpd


и всё! Больше Bitrix ругаться не должен!

Аналогично, если вы используете php-fpm и служба называется php-fpm (проверить можно выполнив команду systemctl |grep php), то мы создаём каталог /etc/systemd/system/php-fpm.service.d, в котором создаём файл limits.conf, с указанным выше содержимым. Опять же нужно выполнить:

systemctl daemon-reload
systemctl restart php-fpm

 

Особое замечание для PHP версий >=7. Дополнительно к вышенаписанному, необходимо в php.ini заменить pcre.jit=0 на pcre.jit=1. И разумеется перезапустить службу, что она перечитала конфиг.

0
Ваш рейтинг: Нет