Устранение ошибок CMS Битрикс
Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек хостинга требованиям CMS и вашего сайта. При запуске этой опции на хостинге Timeweb, Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.
- Отправка почты
- Режим работы MySQL
- Размер стека и pcre.recursion_limit
- Выполнение агентов на cron
- Обязательные параметры PHP
Отправка почты
Речь идет о двух параметрах: «Отправка почты» и «Отправка почтового сообщения больше 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:
- В разделе «Инструменты» — «Crontab» нажмите «Добавить новую задачу» и задайте удобное имя для задачи.
- В пункте «Исполнитель» выберите «Исполняемый бинарный файл».
- В пункте «Путь до файла» укажите команду следующего вида:
/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 на первую букву вашего логина и сам логин.
- В
- В пункте «Периодичность» выберите «Каждую минуту».
Уведомление:
Ошибка! Не настроен запуск cron_events.php на cron
Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.
Решение:
Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.
Обязательные параметры PHP
Уведомление:
Ошибка! Значение max_input_vars должно быть не ниже 10000
Эта ошибка не влияет на работоспособность сайта напрямую, но может отразиться на работе с большими формами в административной панели. При работе с инфоблоками низкое значение параметра max_input_vars
может вызвать проблемы с сохранением настроек, поэтому система выделяет эту ошибку как критическую.
Решение:
Необходимо добавить следующую строку в файл /public_html/.htaccess
:
php_value max_input_vars 11000