Доброго времени суток!
Помогите разобраться с проблемой. Я создал профиль выгрузки в яндекс, создал агента, и 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