1. Справочный центр
  2. Настройки CMS
  3. Настройка 1C-Битрикс
  4. Перевод выполнения агентов на cron
  5. Настройка на тарифах виртуального хостинга

Настройка на тарифах виртуального хостинга


Настройка осуществляется в несколько этапов:

  1. Отключение агентов на хите в командной php-строке 1С-Битрикс
  2. Настройка агентов cron на стороне Reddock
  3. Создание и настройка файла для обработки агентов

Шаг №1. Отключение агентов на хите на стороне 1С-Битрикс

В административной части сайта перейдите в Настройки (1) → Инструменты (2) → Командная PHP-строка (3). Добавьте следующие строки (4):

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");

Нажмите кнопку «Выполнить» (5). В результате выполнения снизу должно появиться «NN».

Шаг №2. Настройка агентов cron на стороне Reddock

Перейдите в панель управления виртуальным хостингом (инструкция). На панели меню слева перейдите в Главное (1) → Менеджер файлов (2). 

Найдите файл «dbconn.php». По умолчанию он расположен по следующему пути: /www/ваш_домен/bitrix/php_interface/ (1).

Выделите файл «dbconn.php» (2), раскройте подменю «Редактировать» и кликните на «Открыть».

Найдите и удалите следующие строки (могут быть обе, может быть всего одна или не быть вообще):

define("BX_CRONTAB_SUPPORT", true);


Вместо удаленной строки добавьте:

if(!(defined("CHK_EVENT") && CHK_EVENT===true))
   define("BX_CRONTAB_SUPPORT", true);

Должно получиться вот так:

Сохраните изменения. 

Шаг №3. Создание и настройка файла для обработки агентов

В менеджере файлов (/bitrix/php_interface/) создайте файл под названием «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_CRONTAB", true);
define('BX_NO_ACCELERATOR_RESET', 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");
    ?

Сохраните изменения. Теперь нужно настроить выполнение этого файла. Для этого на панели меню слева перейдите в Главное (1) → Планировщик (2) и нажимаем кнопку «Создать задание».


Откроется новая вкладка такого вида:

В строке «Команда» (1) укажите следующее значение:

  • для PHP версии 7.4
/bin/sh -c 'cd /var/www/bxXXXX/data/www/mydomain.ru && /opt/php74/bin/php -f bitrix/php_interface/cron_events.php'

Где mydomain.ru — домен вашего сайта, bxXXXX — ваш логин (отображается в правом верхнем углу). Замените эти значения на ваши.

  • для PHP версии 8.1
/bin/sh -c 'cd /var/www/bxXXXX/data/www/mydomain.ru && /opt/php81/bin/php -f bitrix/php_interface/cron_events.php'

Где mydomain.ru — домен вашего сайта, bxXXXX — ваш логин (отображается в правом верхнем углу). Замените эти значения на ваши.

В строке «Описание» (2) можно указать «Cron». В расписании выберите «Экспертный режим» (3) и установите в появившихся полях символ звездочки * (4). Если вы не хотите получать отчет о выполнении по email, установите галочку в соответствующей строке (5). Сохраните изменения.

Чтобы проверить выполнение настройки, в административной части сайта (1С-Битрикс) перейдите в Настройки → Инструменты → Проверка системы. Запустите тестирование и убедитесь, что выполнение агентов на cron выполнено успешно.

Предыдущая статья Упрощенная настройка на тарифах RED
Следующая статья Восстановление пароля администратора