来自命令行的 PHP...路径问题

来自命令行的 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 脚本,而无需先进入目录?

附言:我在 Debian Edge 上,使用 Apache2 和 PHP5。

答案1

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

答案2

您是否已检查过确保没有导致该行为的 php 别名?

答案3

从命令提示符中找出which phpphp 的位置,然后修改 cron 条目以调用<path to php>/php /var/www/apps/myapp/services/myservice.php

相关内容