Запуск непереодических агентов на CRON в Bitrix

Есть масса статей по этой процедуре, но нигде не встречал упоминания про проблему с доступом к файлу со скриптом из-за блокирования доступа в файле .htaccess.

Файл скриптов cron_events.php в интернет-магазине на Bitrix, который нужно запускать периодически, находится по пути:

https://bitrix-site.ru/bitrix/modules/main/tools/cron_events.php

а блокирующий .htaccess с записью Deny from All находится уровнем выше в папке modules и запрещает доступ к вложенным каталогам и соответственно к файлу скрипта.

Для разрешения доступа создаем дополнительный .htaccess в директории tools с таким содержимым:

<Files "cron_events.php">
Allow from all
</Files>

Далее запускаем такой скрипт на сайте в командной строке для переключения агентов с хитов на cron:

COption::SetOptionString("main", "agents_use_crontab", "Y");

echo COption::GetOptionString("main", "agents_use_crontab", "N");

Ответ должен быть: Y

Далее добавляем константу в bitrix/php_interface/dbconn.php:

define('BX_CRONTAB_SUPPORT', true);

Потом добавляем команду в Cron:

*/10 * * * * wget -O - -q -t 1 https://bitrix-site.ru/bitrix/modules/main/tools/cron_events.php

Ну и ещё не забыть проверить разрешения для папок на хостинге.

Поделись, если оказалось полезно :)
Нет комментариев

Написать