Настройка агентов на крон

Настройка всех агентов на 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 следующие строки кода:

dbconn.php
define("BX_CRONTAB_SUPPORT", true);
define("BX_CRONTAB", true);

Добавляем в файл dbconn.php следующий код:

 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 следующий код:

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

Полный путь к интерпретатору php в зависимости от версии:

  • версия php 5.4 /usr/bin/php
  • версия php 5.6 /opt/php56/bin/php
  • версия php 7.0 /opt/php70/bin/php
  • версия php 7.1 /opt/php71/bin/php
  • версия php 7.2 /opt/php72/bin/php
  • версия php 7.3 /opt/php73/bin/php
  • версия php 7.4 /opt/php74/bin/php
  • версия php 8.0: /opt/php80/bin/php
  • версия php 8.1: /opt/php81/bin/php

В данном примере используется команда:  /opt/php74/bin/php -f /var/www/b5984/data/www/example.cloudplace.ru/bitrix/php_interface/cron_events.php

Расписание = переключить в "Экспертный режим"

Минуты = */1

Остальные поля = *

Нажмите "ОК"


Задание добавлено.

Для проверки работы, проведите тестирование в Панели Битрикс.

Для этого пройдите в Настройки → Инструменты → Проверка системы

Нажмите "Начать тестирование".

В результате проверки "Выполнение агентов на cron" должно быть "Успешно"