Я не совсем администратор и мне нужна помощь в настройке cron, ну, на самом деле, в первую очередь, вызывая PHP-скрипт из командной строки.
У меня есть сценарий PHP5, который мне нужно запустить в следующем месте:
/var/www/apps/myapp/services/myservice.php
Прежде чем настраивать для этого cron, я хотел протестировать это вручную, например:
php /var/www/apps/myapp/services/myservice.php
Это ни к чему не приводит. Я могу подтвердить, что этот сценарий не запускался. Ошибки тоже нет. Однако, если я захожу в каталог, а затем вызываю сценарий:
cd /var/www/apps/myapp/services
php myservice.php
Это действительно работает, как я вижу из файла журнала этого сценария. Это должно быть что-то невероятно простое, что я не замечаю, но как я могу вызвать этот PHP-скрипт из командной строки за один раз, не заходя сначала в каталог?
PS: Я использую Debian Edge, использую Apache2 и PHP5.
Перейти к http://www.php.net/manual/en/features.commandline.php и прочтите маркер / информацию, в котором говорится: «CLI SAPI не изменяет текущий каталог на каталог выполненного скрипта!» Вероятно, поэтому вы получаете сообщение об ошибке.
Это должно сработать, если вы добавите cron cd в каталог служб до того, как он запустит приложение следующим образом:
01 * * * * myuser cd / var / www / apps / myapp / services; / usr / bin / php /var/www/apps/myapp/services/myservice.php
Сделать which php
из командной строки, чтобы выяснить местоположение php, а затем изменить запись cron для вызова <path to php>/php /var/www/apps/myapp/services/myservice.php
Вы проверили, нет ли псевдонима php, вызывающего такое поведение?