Добрый день! Стоит задача: - В Cron'e с периодичностью 1 минута запускается "легкий" скрпит - "controller.php" - "controller.php" проверяет, вычисляет и по необходимости стартует в фоновом режиме другие скрипты. (my_script1...my_scriptN) - эти скрипты должны запускаться в контексте Joomla, на базе фреймворка Jquery, быть связанными с порталом, который работает на базе ядра Joomla. Попытка решения задачи: - В корне сайта создан файл j-connect.php: //------------------------- скобка-меньше-больше-вопрос-пхп define( '_JEXEC', 1 ); define('JPATH_BASE', dirname(__FILE__)); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); $mainframe =& JFactory::getApplication('site'); вопрос-скобка //------------------------- - В файле "my_script1" прописана шапка: require_once "/var/www/XXXXX/data/www/XXXXXXXXX.ru".'/j-connect.php'; Проблема: При запуске "my_script1.php" через браузер - все идеально отрабатывает При запуске "my_script1.php" через консоль - скрипт падает после инструкции "$mainframe =& JFactory::getApplication('site')" Пример вызова скрипта из "controller.php": exec("/usr/bin/php5 ".dirname(__FILE__)."/my_script1.php ".$my_ImportList[$i]." >/dev/null 2>&1 &"); ошибка: PHP Fatal error: Class 'JRequest' not found in /var/www/NameMy/data/www/SiteMy.ru/libraries/joomla/session/session.php on line 453 Если кто знает решение проблемы - подскажите, пожалуйста. Если кто делал что нибудь подобное, скажите, это вообще реально (запустить фоновый консольный скрипт в контексте Joomla)? P.S. Joomla! 1.7.3 Stable [ Ember ] 14-Nov-2011 14:00 GMT
Ковырнул... Проблема в том что JRequest грузится по условию, в файле libraries/import.php на строке 58 if (isset($_SERVER['HTTP_HOST'])) { JLoader::import('joomla.environment.request'); следовательно вам нужно в вашем скрипте в самом начале, написать $_SERVER['HTTP_HOST'] = "Any server or I'am from command line"; // лучше конечно http://ваш-сервер/ так как код выполняется не на веб-сервере, навивается мысль что могут быть и другие глюки с этим связаные. курите Joomla лучше. Собственно смысл в том что Joomla надо дать понять, что она выполняется на web-сервере а не в скрипте