rename()无法在cron作业中工作

时间:2016-04-01 21:24:27

标签: php cron rename crontab

rename()从命令行运行正常,但是当从cron作业运行时,rename()不会。由于connect.php文件有效,我假设cron作业位于正确的目录中,但无法弄清楚为什么rename()不起作用。我试过绝对的路径而且他们没有工作:

<?php 
include 'connect.php';

$oldlocation='xxx/xxx/'.$oldfilename;
$newlocation='yyyy/xxx/'.$newfilename;
$move=rename("$oldlocation","$newlocation");

cron作业:* * * * * / usr / bin / php /usr/xxx/xxx/xxx/xxx.php -q -f

我没有对服务器的root访问权限。这应该通过SHELL脚本运行吗?

2 个答案:

答案 0 :(得分:2)

执行cron时的当前路径是运行home进程的用户的cron目录。另请参阅此post

只需将相对路径更改为绝对路径即可解决问题。

答案 1 :(得分:0)

解决方案,而不是直接的目录问题(好吧):     $ oldlocation ='XXX / XXX /'.$ oldfilename; 必须改为:     $ oldlocation ='/ XXX / XXX /'.$ oldfilename; 我想我错过了第一个/