在设置要在 crontab 中运行的 PHP 脚本时,指定“/usr/bin/php”和仅使用“php”之间有什么区别?我倾向于仅使用“php”而不是完整路径。
30 16 * * * php /var/www/vhosts/dev_crm/cron/picco.php >> /home/crmpicco/cron-picco.log 2>&1
或者
30 16 * * * /usr/bin/php /var/www/vhosts/dev_crm/cron/picco.php >> /home/crmpicco/cron-picco.log 2>&1
谢谢。
答案1
谁运行这个 crontab?
它可能由不同的用户运行,但该用户的 $PATH 中没有 /usr/bin,或者它可能在修改后的环境中运行,但该用户的 $PATH 中同样没有 /usr/bin。
如果有疑问,请指定完整路径。
答案2
区别在于第一个 crontab 将不起作用:)
原因是执行 crontabs 的用户没有填充其 PATH 变量来限制非自愿错误的影响。
如果需要,您可以在命令前再次声明变量:
30 16 * * * PATH=/usr/bin/ php /var/www/vhosts/dev_crm/cron/picco.php >> /home/crmpicco/cron-picco.log 2>&1