Доброго времени суток!
Помогите разобраться с проблемой. Я создал профиль выгрузки в яндекс, создал агента, и cron. На хостинге тоже создали крон на выполнение файла cron_frame.php с записью в логи logs/3.txt содержимое файла cron_frame.php:
крон на сервере отрабатывает по расписанию а вот в логи файл logs/3.txt пишет следующее:
ругается на строку if (CModule::IncludeModule("catalog" ), получается при запуске крона скрипт не воспринимает API битрикса.
Подскажите куда копать? и как можно вылечить.
Версия битрикса 1С-Битрикс: Управление сайтом 12.5.9
Помогите разобраться с проблемой. Я создал профиль выгрузки в яндекс, создал агента, и cron. На хостинге тоже создали крон на выполнение файла cron_frame.php с записью в логи logs/3.txt содержимое файла cron_frame.php:
Код |
---|
#!/usr/local/php/bin/php -q <?php $_SERVER["DOCUMENT_ROOT"] = "/var/www/mysite/htdocs"; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define("BX_CAT_CRON", true); define('NO_AGENT_CHECK', true); set_time_limit (0); define("LANG","ru"); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; $profile_id = $argv[1]; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (CModule::IncludeModule("catalog")) { $profile_id = intval($profile_id); if ($profile_id<=0) die(); $ar_profile = CCatalogExport::GetByID($profile_id); if (!$ar_profile) die(); $strFile = CATALOG_PATH2EXPORTS.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { $strFile = CATALOG_PATH2EXPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { die(); } } $arSetupVars = array(); $intSetupVarsCount = 0; if ('Y' != $ar_profile["DEFAULT_PROFILE"]) { parse_str($ar_profile["SETUP_VARS"], $arSetupVars); if (!empty($arSetupVars) && is_array($arSetupVars)) { $intSetupVarsCount = extract($arSetupVars, EXTR_SKIP); } } CCatalogDiscountSave::Disable(); include($_SERVER["DOCUMENT_ROOT"].$strFile); CCatalogDiscountSave::Enable(); CCatalogExport::Update($profile_id, array( "=LAST_USE" => $DB->GetNowFunction() ) ); } ?> |
крон на сервере отрабатывает по расписанию а вот в логи файл logs/3.txt пишет следующее:
Код |
---|
<? if(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/d7.php")) { function getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } require_once(dirname(__FILE__)."/../bx_root.php"); include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/lib/loader.php"); /** @var $application \Bitrix\Main\HttpApplication */ $application = \Bitrix\Main\HttpApplication::getInstance(); $application->turnOnCompatibleMode(); $application->setInputParameters( $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV ); $application->initialize(); $page = new \Bitrix\Main\PublicPage(); $application->setPage($page); $application->start(); CMain::PrologActions(); return; } define("START_EXEC_PROLOG_BEFORE_1", microtime()); $GLOBALS["BX_STATE"] = "PB"; if(isset($_REQUEST["BX_STATE"])) unset($_REQUEST["BX_STATE"]); if(isset($_GET["BX_STATE"])) unset($_GET["BX_STATE"]); if(isset($_POST["BX_STATE"])) unset($_POST["BX_STATE"]); if(isset($_COOKIE["BX_STATE"])) unset($_COOKIE["BX_STATE"]); if(isset($_FILES["BX_STATE"])) unset($_FILES["BX_STATE"]); if(!isset($USER)) {global $USER;} if(!isset($APPLICATION)) {global $APPLICATION;} if(!isset($DB)) {global $DB;} require_once(dirname(__FILE__)."/../include.php"); CMain::PrologActions(); ?> Fatal error: Class 'CModule' not found in /var/www/mysite/htdocs/bitrix/php_interface/include/catalog_export/cron_frame.php on line 17 |
ругается на строку if (CModule::IncludeModule("catalog" ), получается при запуске крона скрипт не воспринимает API битрикса.
Подскажите куда копать? и как можно вылечить.
Версия битрикса 1С-Битрикс: Управление сайтом 12.5.9