Настройка агентов на крон
Настройка всех агентов на cron.
Для начала полностью отключим выполнение агентов на хитах. Для этого перейдите в панель Битрикса:
Настройки > Инструменты > Командная PHP-строка и вставьте следующий код в php консоль и нажмите кнопку "Выполнить":
COption::SetOptionString("main", "agents_use_crontab", "N"); echo COption::GetOptionString("main", "agents_use_crontab", "N"); COption::SetOptionString("main", "check_agents", "N"); echo COption::GetOptionString("main", "check_agents", "Y");
В результате выполнения должно быть "NN".
После этого в панели ISPmanager пройдите в Менеджер файлов:
Перейдите по пути: /www/ваш.домен/bitrix/php_interface/dbconn.php и
отредактируйте файл "dbconn.php"
В данном примере используется путь: /www/example.cloudplace.ru/bitrix/php_interface/dbconn.php
Удаляем в файле dbconn.php следующие строки кода:
define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true);
Добавляем в файл dbconn.php следующий код:
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
Далее создадим новый файл в Менеджере файлов /www/ваш.домен/bitrix/php_interface/cron_events.php
В данном примере используется путь /www/example.cloudplace.ru/bitrix/php_interface/cron_events.php
Скопируем и вставим в файл cron_events.php следующий код:
<?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); define('CHK_EVENT', true); define('BX_WITH_ON_AFTER_EPILOG', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); @set_time_limit(0); @ignore_user_abort(true); CAgent::CheckAgents(); define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true); CEvent::CheckEvents(); if(CModule::IncludeModule('sender')) { \Bitrix\Sender\MailingManager::checkPeriod(false); \Bitrix\Sender\MailingManager::checkSend(); } require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/tools/backup.php"); CMain::FinalActions(); ?>
Добавление задания в крон ISPmanager
В панели ISPmanager перейдите в меню Основное→ Планировщик
Нажмите "Создать задание".
И добавляем скрипт который только что создали в cron:
Полный путь на сервере вашего cron скрипта будет такой: /var/www/имя_пользователя/data/www/Ваш.Домен/cron_events.php
Команда указывается в следующем формате: путь к интерпретатору php в зависимости от версии -f /var/www/имя_пользователя/data/www/Ваш.Домен/bitrix/php_interface/cron_events.php
В данном примере используется команда: /opt/php74/bin/php -f /var/www/b5984/data/www/example.cloudplace.ru/bitrix/php_interface/cron_events.php
Расписание = переключить в "Экспертный режим"
Минуты = */1
Остальные поля = *
Нажмите "ОК"
Задание добавлено.
Для проверки работы, проведите тестирование в Панели Битрикс.
Для этого пройдите в Настройки → Инструменты → Проверка системы
Нажмите "Начать тестирование".
В результате проверки "Выполнение агентов на cron" должно быть "Успешно"