我是php的新手,如果有人可以通过告诉我们这两个cron命令之间的区别来帮助我,我会非常感激:
/usr/local/bin/php -q /home/delightl/public_html/myfolder/run.php
和
php -q /home/delightl/public_html/myfolder/run.php
我完全糊涂了..在我的GoDaddy服务器上,第二个命令工作,但在另一个经销商俱乐部服务器都工作。这些命令有什么区别?
答案 0 :(得分:4)
唯一的区别是,一个指定PHP二进制文件的完整路径,另一个不指定。
PHP可以安装在不同的位置。这就是它在一台服务器上工作的原因,而不是另一台服务器。
答案 1 :(得分:1)
使用其中任何一个都有赞成和赞成:
/usr/local/bin/php -q /home/delightl/public_html/myfolder/run.php
Pro:指定PHP二进制文件的完整路径,不依赖于用户的$PATH
环境变量来正确包含安装PHP的路径。
Con: PHP二进制文件的位置因系统而异。
php -q /home/delightl/public_html/myfolder/run.php
Pro: 通常不需要在系统之间进行更改。
Con:经常无法正常工作,因为许多PHP软件包都不会将PHP添加到cron用户的$PATH
,或者运行cron的环境是空白或未填充,因为它是不是互动会议。
恕我直言,最好的解决方案是始终使用完整路径。如果你不确定路径是什么运行which php
通过shell告诉你二进制文件的完整路径,只要它在你的 $PATH
中。