Устранение ошибок CMS Битрикс

Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек хостинга требованиям CMS и вашего сайта. При запуске этой опции на хостинге Timeweb, Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.

Отправка почты

Речь идет о двух параметрах: «Отправка почты» и «Отправка почтового сообщения больше 64Кб».

Уведомление:

Ошибка! Не работает

Эта ошибка возникает, если вы используете хостинг на тестовом периоде — до оплаты услуги почта недоступна. Как только хостинг будет оплачен, почта заработает.

Режим работы MySQL

Уведомление:

Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION

Эта ошибка критична. Она может привести к блокировке запросов к базе данных, что практически означает остановку работы сайта. 

Решение:

Необходимо внести изменения в файлы конфигурации Bitrix, в которых задаются параметры базы данных, и указать в них нужные значения. Отредактировать файлы можно, например, с помощью Файлового менеджера.

В файл /public_html/bitrix/php_interface/after_connect.php под уже имеющимися строками и до символов ?> добавьте:

$DB->Query("SET sql_mode=''");
$DB->Query("SET innodb_strict_mode=0");

В файл /public_html/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:

$connection->queryExecute('SET sql_mode=""');
$connection->queryExecute("SET innodb_strict_mode=0");

После этого проверка Bitrix пройдет успешно.

Размер стека и pcre.recursion_limit

Уведомление:

Замечание: Возможны проблемы в работе с длинными строками из за системных ограничений

Это замечание некритично и, как правило, на работе сайтов не сказывается, однако оно может влиять на обработку очень длинного текста, например, если в нем сотни тысяч символов.

Этот параметр влияет на возможность обработки строк регулярными выражениями. Лимит по умолчанию установлен достаточно большой, чтобы можно было обработать практически любой контент на сайте, но для устранения замечания можно дополнительно внести изменения.

Решение:

  • Если у вас тариф мощного хостинга, решением будет переключение сайта на PHP 7.4. Это можно сделать в разделе «Сайты» — «Мои сайты» по нашей инструкции.
  • Если у вас тариф обычного хостинга или если смена версии PHP не помогла, исправить ошибку, добавьте в файл /public_html/.htaccess строки:
php_value pcre.jit 0
php_value pcre.recursion_limit 100000

Выполнение агентов на cron

Уведомление:

Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron

Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.

Решение:

Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT.

Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:

define('BX_CRONTAB_SUPPORT', true);

Затем нужно добавить задачу в Crontab:

  1. В разделе «Инструменты» — «Crontab» нажмите «Добавить новую задачу» и задайте удобное имя для задачи.
  2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».
  3. В пункте «Путь до файла» укажите команду следующего вида:
/opt/php72/bin/php -f /home/u/user/site.ru/public_html/bitrix/modules/main/tools/cron_events.php
    • В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php (или /opt/php7.4/bin/php).
    • Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.
  1. В пункте «Периодичность» выберите «Каждую минуту».

Уведомление:

Ошибка! Не настроен запуск cron_events.php на cron

Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.

Решение:

Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.

Обязательные параметры PHP

Уведомление:

Ошибка! Значение max_input_vars должно быть не ниже 10000

Эта ошибка не влияет на работоспособность сайта напрямую, но может отразиться на работе с большими формами в административной панели. При работе с инфоблоками низкое значение параметра max_input_vars может вызвать проблемы с сохранением настроек, поэтому система выделяет эту ошибку как критическую.

Решение:

Необходимо добавить следующую строку в файл /public_html/.htaccess:

php_value max_input_vars 11000