Назад | Перейти на главную страницу

PHP из командной строки… проблемы с путями

Я не совсем администратор и мне нужна помощь в настройке 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, вызывающего такое поведение?