Если Сценарий PHP выполняется, поскольку сценарий крона, включение часто перестало работать, если относительные пути используются. Например, если Вы имеете
require_once('foo.php');
файл foo.php будет найден при выполнении на командной строке, но не, когда выполнено из сценария крона.
Типичное обходное решение для этого к первому chdir к рабочему каталогу или полным путям использования. Я хотел бы знать, однако, что отличается между кроном, и окружите, который вызывает это поведение. Почему это перестало работать при использовании относительных путей в сценарии крона?
Рабочий каталог скрипта может быть отличным при запуске от CRON. Дополнительно, было некоторая путаница по поводу PHPS требует () и включает в себя (), что вызвало путаницу о рабочем каталоге действительно проблемой:
include('foo.php') // searches for foo.php in the same directory as the current script
include('./foo.php') // searches for foo.php in the current working directory
include('foo/bar.php') // searches for foo/bar.php, relative to the directory of the current script
include('../bar.php') // searches for bar.php, in the parent directory of the current working directory
Другая возможность заключается в том, что версия CLI использует другой php.ini файл. (По умолчанию он будет использовать php-cli.ini и откат к стандартному php.ini)
Также, если вы используете .htaccess файлы для установки пути к вашей библиотеке и т.д., это явно не сработает через клип.
.При выполнении через задание cron ваш PHP-скрипт, вероятно, выполняется в другом контексте, чем если бы вы запускали его вручную из оболочки командной строки. Таким образом, ваши относительные пути не указывают на правильный путь.
.