PHP-CLI与cronjob-相同的脚本,不同的结果

PHP-CLI与cronjob-相同的脚本,不同的结果,php,cron,system,exec,command-line-interface,Php,Cron,System,Exec,Command Line Interface,我有一个PHP脚本,它在命令行上运行得非常好,如果我只是像这样运行它PHP/path/to/script/script.PHP。 如果我现在使用crontab-e在cron中调度此命令,并添加以下行: */1 * * * * php /path/to/script/script.php 2>&1 >> /var/log/logfile.log 它确实会像预期的那样每分钟执行一次,所有的输出都会放入日志文件,就像在命令行上运行它一样。但脚本的某些部分似乎不起作用。这些特

我有一个PHP脚本,它在命令行上运行得非常好,如果我只是像这样运行它
PHP/path/to/script/script.PHP
。 如果我现在使用
crontab-e
在cron中调度此命令,并添加以下行:

*/1 * * * * php /path/to/script/script.php 2>&1 >> /var/log/logfile.log
它确实会像预期的那样每分钟执行一次,所有的输出都会放入日志文件,就像在命令行上运行它一样。但脚本的某些部分似乎不起作用。这些特定部分是类似于以下内容的线条:

system('mkdir /mnt/temp', $retVal);

我已经尝试了所有可能的方法,比如以root用户身份运行它,使用
/bin/mkdir
而不是
mkdir
对所有可能受影响的脚本和文件夹授予权限。system()的返回值为0(用于在CLI上运行),1(用于crontab方式)


有什么建议吗?

我无法解决CLI与crontab之间的问题,但对我有效的解决方案是在cron内部使用bash脚本。bash脚本反过来调用PHP脚本。这就像我运行脚本所需的任何用户下的符咒。 所以我不能说这是或不是一个权限问题


谢谢大家的评论,伙计们

如果这是一个临时文件夹,为什么不在/tmp中创建它呢?a)确保调用了相同的php解释器?
PATH
变量可能不同。和b)这可能是权限问题:确定脚本是在同一用户帐户下执行的吗?使用相同的权限和umask?权限最有可能!您以与commandline相同的用户身份运行cron?使用
crontab-e-u root
显示我添加的作业,因此我希望它以rootAs@HankyPanky的身份运行ㇱ 他说,几乎可以肯定这是一个权限问题。
exec('mkdir /mnt/temp');