Как настроить CentOS 7, чтобы Bitrix не ругался на pcre.recursion_limit?
У многих системных администраторов возникают трудности при настройке хостинга для 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. И разумеется перезапустить службу, что она перечитала конфиг.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 4188 просмотров