Устранение ошибок 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 под уже имеющимися строками и до символов ?> добавьте:
В файл /public_html/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:
После этого проверка Bitrix пройдет успешно.
Размер стека и pcre.recursion_limit
Уведомление: Замечание: Возможны проблемы в работе с длинными строками из за системных ограничений
Это замечание некритично и, как правило, на работе сайтов не сказывается, однако оно может влиять на обработку очень длинного текста, например, если в нем сотни тысяч символов.
Этот параметр влияет на возможность обработки строк регулярными выражениями. Лимит по умолчанию установлен достаточно большой, чтобы можно было обработать практически любой контент на сайте, но для устранения замечания можно дополнительно внести изменения.
Решение:
- Если у вас тариф мощного хостинга, решением будет переключение сайта на PHP 7.4. Это можно сделать в разделе «Сайты» по нашей инструкции.
- Если у вас тариф обычного хостинга или если смена версии PHP не помогла, исправить ошибку, добавьте в файл /public_html/.htaccess строки:
Выполнение агентов на cron
Уведомление: Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron
Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.
Решение:
Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT .
Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:
1. В разделе Crontab нажмите «Добавить новую задачу» и задайте удобное имя для задачи.
2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».
3. В пункте «Путь до файла» укажите команду следующего вида:
- В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php ( или /opt/php7.4/bin/php ).
- Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.
4. В пункте «Периодичность» выберите «Каждую минуту».
Уведомление: Ошибка! Не настроен запуск cron_events.php на cron
Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.
Решение:
Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.
Обязательные параметры PHP
Уведомление: Ошибка! Значение max_input_vars должно быть не ниже 10000
Эта ошибка не влияет на работоспособность сайта напрямую, но может отразиться на работе с большими формами в административной панели. При работе с инфоблоками низкое значение параметра max_input_vars может вызвать проблемы с сохранением настроек, поэтому система выделяет эту ошибку как критическую.
Решение:
Необходимо добавить следующую строку в файл /public_html/.htaccess :
Источник
Не работают агенты через cron
Установил на чистый сервер Bitrix virtual appliance version 7.4.3
CentOS Linux release 7.8.2003 (Core)
Агенты при этом не выполняются. Дополнительно добавил задание в крон по инструкции https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943
Но агенты не выполняются, проверяют через Настройки > Настройки продукта> Агенты.
Подскажите пожалуйста, как исправить?
Крон 100% отрабатывает. Проблема не в нем. Пробовал добавить в /home/bitrix/www/local/php_interface/cron_events.php строку с mail() php, письмо по запуску с cron пришло. Что-то с выполнением периодических агентов. Проблем с письмами нет, настроено.
указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);
Возможно вы не полностью настроили выполнение ВСЕХ агентов на кроп. А для почты достаточно просто
указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);
вот что там. должно быть
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
| Цитата |
|---|
| Евгений Костюк написал: указать define(«BX_CRONTAB_SUPPORT», true);define(«BX_CRONTAB», true); |
пробовал, результат тот же
| Цитата |
|---|
| Евгений Костюк написал: А еще нужно помнить что крон нужно запускать. от пользователя bitrix. если вы от рута редактируете крон, то crontab -e -u bitrix |
именно от bitrix работает
| Цитата |
|---|
| Евгений Костюк написал: вот что там. должно быть*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.phpа у вас*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php |
| Цитата |
|---|
| Евгений Костюк написал: а сам почтовый ящик вы настроили? Это меню виртуальной машина пункт 6, потом 4 |
| Цитата |
|---|
| Александр Гусев написал: Обобщенное решение для выполнения всех агентов из-под cron |
| Цитата |
|---|
| Александр Гусев написал: Обобщенное решение для выполнения всех агентов из-под cron |
не помогает. Агенты замерли, хоть крон и отрабатывает задачи.
На днях продлили лицензию битрикса и обновили, в том числе vmbitrix и php до 7.4.16. После чего перестал работать крон.
В логах была ошибка
Почта настроена. Отправка через mail() происходит.
Источник
cron не выполняет скрипт php(агенты на крон) VMBitrix 7.4.0
Второй день бьюсь не могу заставить работать.
логи крона
Jan 7 12:30:01 server1 CROND[7293]: (bitrix) CMD (-f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && < /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php; >>/tmp/scri$
в файле ошибок — пусто.
когда выполняю содержимое файла cron_events.ph через php-консоль все отрабатывает
содержимое крона /etc/cron.d/bx_bitrixdb
# Ansible managed
# cron tasks for site default
#
[root@server1 /]# ls -l /home/bitrix/www/bitrix/modules/main/tools/cron_events.php;
-rwxr—rw- 1 bitrix bitrix 878 Jan 7 12:18 /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
пи выполнении команды по ssh
/usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
в консоли выводится содержимое html
VMBitrix 7.4.0, веб окружение установлено.
1) Если у вас bitrix env то ничего делать то и не нужно.
В /etc/crontab уже есть запись:
2) Если вы решили «ручками» включить пункт меню в настройках и дописать в файл /etc/cron.d/bx_bitrixdb свои правила, то запускать их следует от пользователя bitrix (UID: 600). Открываем доку и читаем раздел про права доступа.
3) По этой инструкции имеет смысл делать только раздел «Обобщенное решение для выполнения всех агентов из-под cron»
откатился до состояния с сообщением
Выполнение агентов на cron Замечание. Агенты выполняются на хитах, рекомендуется перевести выполнение агентов на cron
добавил строку в /home/bitrix/www/bitrix/php_interface/dbconn.php
Теперь при проверке
Проверка на наличие неотправленных сообщений Ошибка! Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений: 2
Определена константа BX_CRONTAB_SUPPORT в /bitrix/php_interface/dbconn.php, при этом должен быть настроен вызов агентов на cron.
В логах событие отрабатывается. сообщения не приходят
Источник
Не работают агенты через cron
Установил на чистый сервер Bitrix virtual appliance version 7.4.3
CentOS Linux release 7.8.2003 (Core)
Агенты при этом не выполняются. Дополнительно добавил задание в крон по инструкции https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943
Но агенты не выполняются, проверяют через Настройки > Настройки продукта> Агенты.
Подскажите пожалуйста, как исправить?
Крон 100% отрабатывает. Проблема не в нем. Пробовал добавить в /home/bitrix/www/local/php_interface/cron_events.php строку с mail() php, письмо по запуску с cron пришло. Что-то с выполнением периодических агентов. Проблем с письмами нет, настроено.
указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);
Возможно вы не полностью настроили выполнение ВСЕХ агентов на кроп. А для почты достаточно просто
указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);
вот что там. должно быть
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
| Цитата |
|---|
| Евгений Костюк написал: указать define(«BX_CRONTAB_SUPPORT», true);define(«BX_CRONTAB», true); |
пробовал, результат тот же
| Цитата |
|---|
| Евгений Костюк написал: А еще нужно помнить что крон нужно запускать. от пользователя bitrix. если вы от рута редактируете крон, то crontab -e -u bitrix |
именно от bitrix работает
| Цитата |
|---|
| Евгений Костюк написал: вот что там. должно быть*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.phpа у вас*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php |
| Цитата |
|---|
| Евгений Костюк написал: а сам почтовый ящик вы настроили? Это меню виртуальной машина пункт 6, потом 4 |
| Цитата |
|---|
| Александр Гусев написал: Обобщенное решение для выполнения всех агентов из-под cron |
| Цитата |
|---|
| Александр Гусев написал: Обобщенное решение для выполнения всех агентов из-под cron |
не помогает. Агенты замерли, хоть крон и отрабатывает задачи.
На днях продлили лицензию битрикса и обновили, в том числе vmbitrix и php до 7.4.16. После чего перестал работать крон.
В логах была ошибка
Почта настроена. Отправка через mail() происходит.
Источник
Переключение агентов на cron
| Цитата |
|---|
| Результат теста: Ошибка! Не настроен запуск cron_events.php на cron, последний агент отработал больше суток назад. |
Чтобы перенести работу непериодических агентов (и передачу почты) на cron, необходимо в /bitrix/php_interface/dbconn.php установить константу:
define(‘BX_CRONTAB_SUPPORT’, true);
После этого на хитах будут выполняться только периодические агенты. Затем в cron поставить задание на ежеминутный запуск скрипта /var/www/bitrix/modules/main/tools/cron_events.php.
(замените /var/www на свой путь к корню сайта).
| Цитата |
|---|
| Убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант: |
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);
if(!(defined(«CHK_EVENT») && CHK_EVENT===true)) define(«BX_CRONTAB_SUPPORT», true);
в результатах теста пишут наоборот установить
по инструкции создается файл /bitrix/php_interface/cron_events.php, в тестах пишут что этот файл тут /www/bitrix/modules/main/tools/cron_events.php
Подскажите пожалуйста как правильно настроить?
| Цитата |
|---|
| Владимир Чадаев написал: Результат теста: Ошибка! Не настроен запуск cron_events.php на cron, последний агент отработал больше суток назад.Чтобы перенести работу непериодических агентов (и передачу почты) на cron, необходимо в /bitrix/php_interface/dbconn.php установить константу:define(‘BX_CRONTAB_SUPPORT’, true);После этого на хитах будут выполняться только периодические агенты. Затем в cron поставить задание на ежеминутный запуск скрипта /var/www/bitrix/modules/main/tools/cron_events.php.(замените /var/www на свой путь к корню сайта). |
| Цитата |
|---|
| Владимир Чадаев написал: в результатах теста пишут наоборот установитьпо инструкции создается файл /bitrix/php_interface/cron_events.php, в тестах пишут что этот файл тут /www/bitrix/modules/main/tools/cron_events.phpПодскажите пожалуйста как правильно настроить? |
Не важно, где находится файл, главное какой из них будет запускаться через cron. И какой код внутри файла. Я недавно переводил себе агентов на крон (у меня из 87). Мой файл www/bitrix/php_interface/cron_events.php:
$_SERVER[‘DOCUMENT_ROOT’] = realpath(dirname(__FILE__).’/. ./..’);
$DOCUMENT_ROOT = $_SERVER[‘DOCUMENT_ROOT’];
define(‘NO_KEEP_STATISTIC’, true);
define(‘NOT_CHECK_PERMISSIONS’,true);
define(‘BX_NO_ACCELERATOR_RESET’, true);
Источник