Искать в:
Везде  
  • Везде
  • Виртуальный хостинг
    • Общие вопросы
    • Технические вопросы
      • Настройка PHP
      • Статистика Webalizer и AWStats
      • Перенаправления (Redirect)
    • Работа с файлами
  • Виртуальные серверы (VPS)
    • Общая информация о VPS
    • RED.Site
    • Классический VPS
  • Домены
    • Регистрация и продление доменов
    • Перенос доменов
      • Технический перенос домена в RedDock
      • Административный перенос домена в RedDock
  • SSL-сертификаты
    • Выбор и покупка SSL-сертификата
    • Установка SSL-сертификата
  • Личный кабинет
  • Настройки CMS
    • Настройка 1C-Битрикс
  • Партнерская программа
    • Как происходит регистрация клиента и активация начальной скидки
    • Как стать партнером
      • Как зарегистрироваться
      • Как заключить партнерский договор?
      • Расторжение договора
    • Вопросы по вознаграждению
  • Оплата услуг
  • Почта
    • Предоставляете ли вы услуги электронной почты?
    • Подключение Яндекс.Почты для домена

Перевод выполнения агентов на cron

Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в php консоли 1С-Битрикс (Настройки - Инструменты - Командная 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".

После этого убираем из файла /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 следующего содержания:

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

И добавляем данный скрипт в crontab и не забудьте заменить путь к файлу cron_events.php для  вашего сайта:

*/1 * * * * php -f /var/www/mysite.ru/httpdocs/bitrix/php_interface/cron_events.php

Примеры команд для клиентов RedDock

Настройки необходимо выполнять через панель управления ISPmanger, в разделе планировщик. Рекомендуемся периодичность запуска агентов на cron - каждую минуту.

Для сайтов на тарифе RED.Site

В команде замените mydomain.ru на адрес вашего сайта.
Пример команды для PHP версии 5.6
cd /var/www/www-root/data/www/mydomain.ru && /opt/php56/bin/php -f bitrix/php_interface/cron_events.php
Пример команды для PHP версии 7.0
cd /var/www/www-root/data/www/mydomain.ru && /opt/php70/bin/php -f bitrix/php_interface/cron_events.php

Для сайтов на тарифах Виртуального хостинга и Хостинга для 1С-Битрикс

В команде замените mydomain.ru на адрес вашего сайта и bxXXXX на ваш логин, он отображается в правом верхнем углу при входе в панель управления хостингом и имеет вид bxXXXX -  для тарифов хостинга для 1С-Битрикс и vhXXXX - для тарифов виртуального хостинга.

Пример команды для PHP версии 5.6
/bin/sh -c 'cd /var/www/bxXXXX/data/www/mydomain.ru && /opt/php56/bin/php -f bitrix/php_interface/cron_events.php'
Пример команды для PHP версии 7.0
/bin/sh -c 'cd /var/www/bxXXXX/data/www/mydomain.ru && /opt/php70/bin/php -f bitrix/php_interface/cron_events.php'

После этого все агенты и отправка системных событий будут обрабатывается из под cron.