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

我有一个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));


        }


慕雪6442864
浏览 239回答 1
1回答

狐的传说

问题几乎可以肯定是道路$pat = str_replace('../','', $row['fileName']);。Crons执行PHP cli,这与Apache执行的PHP不同,这也是另一个上下文。尝试设置绝对路径:$pat = "/var/www/myfolder/myscript.some";如果由于某种原因由于文件夹结构取决于上下文(例如,开发,生产)而需要变量,则可以在cron执行PHP时将变量作为参数传递://this is the cron30 17 * * 1 myscript.php myvar在myscript.php里面$argv[1]是myvar。
打开App,查看更多内容
随时随地看视频慕课网APP