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脚本运行吗?
答案 0 :(得分:2)
执行cron
时的当前路径是运行home
进程的用户的cron
目录。另请参阅此post。
只需将相对路径更改为绝对路径即可解决问题。
答案 1 :(得分:0)
解决方案,而不是直接的目录问题(好吧): $ oldlocation ='XXX / XXX /'.$ oldfilename; 必须改为: $ oldlocation ='/ XXX / XXX /'.$ oldfilename; 我想我错过了第一个/