为了账号安全,请及时绑定邮箱和手机立即绑定

cron运行php脚本时,取消链接不起作用

cron运行php脚本时,取消链接不起作用

慕雪6442864 2021-04-13 17:18:30
我有一个php脚本,正在检查virustotal扫描的结果。如果扫描对恶意代码返回肯定,它将在数据库中将该值更改为0。我有另一个php脚本,它检查该值,如果它是0,它将从db中删除该条目,然后从目录中删除该文件。当我通过命令行运行它时,它运行完美,但是当cron运行它时,它确实删除了db条目,但是它并未从目录中删除文件。任何帮助将非常感激。这是带有取消链接的php文件的结尾:else{        // if not it deletes the image        $hash = $row['hash'];        $result2 = mysqli_query($connection, "DELETE FROM userUploads WHERE hash = '$hash' ");        // need due to dir structure        $pat = str_replace('../','', $row['fileName']);        unlink ($pat);        if (! $result2){            echo('Database error: ' . mysqli_error($connection));        }
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

问题几乎可以肯定是道路$pat = str_replace('../','', $row['fileName']);。Crons执行PHP cli,这与Apache执行的PHP不同,这也是另一个上下文。尝试设置绝对路径:


$pat = "/var/www/myfolder/myscript.some";

如果由于某种原因由于文件夹结构取决于上下文(例如,开发,生产)而需要变量,则可以在cron执行PHP时将变量作为参数传递:


//this is the cron

30 17 * * 1 myscript.php myvar

在myscript.php里面$argv[1]是myvar。


查看完整回答
反对 回复 2021-04-16
  • 1 回答
  • 0 关注
  • 218 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信