重命名()在cron作业中不起作用
rename() not working in cron job
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
我没有服务器的根访问权限。这应该是 运行 通过 SHELL 脚本吗?
cron
执行时的当前路径是用户的 home
目录,即 运行 cron
进程。另见 post.
只需将相对路径更改为绝对路径即可解决问题。
解决方案,不直接是目录问题(好吧):
$oldlocation='xxx/xxx/'.$oldfilename;
必须改为:
$oldlocation='/xxx/xxx/'.$oldfilename;
我想我错过了第一个 /
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
我没有服务器的根访问权限。这应该是 运行 通过 SHELL 脚本吗?
cron
执行时的当前路径是用户的 home
目录,即 运行 cron
进程。另见 post.
只需将相对路径更改为绝对路径即可解决问题。
解决方案,不直接是目录问题(好吧): $oldlocation='xxx/xxx/'.$oldfilename; 必须改为: $oldlocation='/xxx/xxx/'.$oldfilename; 我想我错过了第一个 /