pcre recursion limit в Битрикс

Задача:

Размер стека и pcre recursion limit — Замечание. Возможны проблемы в работе с длинными строками из-за системных ограничений

При полном тестировании системы в админке Битрикса (Настройки → Инструменты → Проверка системы) получаем замечание «Возможны проблемы в работе с длинными строками из-за системных ограничений»


Решение:
Как правило, для корректной работы CMS Bitrix требуется снижение значения pcre.recursion_limit до 1000. Для этого нужно прописать правило в файле php.ini или в .htaccess, если у вас виртуальный хостинг и нет доступа к настройкам сервера.

  1. В файле /etc/php.d/bitrixenv.ini изменим параметр pcre.recursion_limit со значения 14000 на 100000
    pcre.recursion_limit=100000
  2. В скрипте запуска сервера HTTP Apache /etc/rc.d/init.d/httpd изменим функцию start(), добавив в нее одну строку ulimit -s unlimited
  3. В итоге должно получиться примерно следующее:
    start() {
      echo -n $"Starting $prog: "
      ulimit -s unlimited
      LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
      RETVAL=$?
      echo
      [ $RETVAL = 0 ] && touch ${lockfile}
      return $RETVAL
    }

Для виртуального хостинга в файле .htaccess
php_value pcre.recursion_limit 100000

Изменено: 17 05 2018
Просмотров: 9713