Я написал утилиту командной строки, используя Zend Framework, для создания ночных отчетов. Он использует тонну той же функциональности сопутствующего сайта. Он отлично работает, когда я запускаю его вручную, но когда я запускаю его на cron, у меня возникают проблемы с путями. Похоже, это должно быть легко исправлено с помощью set_include_path, но, может быть, я что-то упустил?
Моя структура каталогов выглядит так:
/var/www/clientname/
application
Globals.php
commandline
commandline_bootstrap.php
public_html
public_bootstrap.php
library
Zend
В public_bootstrap.php я без проблем использую set_include_path относительно текущего каталога:
set_include_path('../library' . PATH_SEPARATOR . get_include_path());
Если я правильно понимаю, в commandline_bootstrap.php мне нужно указать абсолютный путь, чтобы cron знал, где все находится. Мой файл начинается так:
error_reporting(E_ALL);
set_include_path('/var/www/clientname/library' . PATH_SEPARATOR . get_include_path());
require_once "../application/Globals.php";
Но когда я запускаю его через cron, я получаю следующую ошибку:
Неустранимая ошибка PHP: require_once ():
Не удалось открыть
'../Application/Globals.php'
(Include_path = '/ вар / WWW / ClientName / библиотека /')
в
/var/www/clientname/commandline/zfcli.php
по линии 11
Я думаю, что PHP принимает мой новый путь, потому что когда я запускаю его из командной строки и выкидываю phpinfo, я вижу:
include_path =>
/var/www/clientname/library/:.:/usr/share/pear:/usr/share/php
=>.: / usr / share / pear: / usr / share / php
Я допускаю, что здесь синтаксис выглядит немного странно, но я не могу понять, как это исправить. Любые предложения будут с благодарностью.
Спасибо
лето