PHP 当脚本由 Crontab 执行时,Zip 存档提取不工作

PHP Zip Archive Extract Not working When Script is Executed by Crontab

在我的脚本中,我需要连接到 ftp 并下载几个 zip 文件,然后将它们解压缩到一个目录中。我已经实现了这个,当我通过浏览器 运行 脚本时,它按预期工作,但是当 crontab 运行 这个脚本时,它会抛出无法提取文件的错误。我试图研究但我没有运气我不明白这是为什么。

以下是我遇到的错误:

A PHP Error was encountered

Severity: Warning
Message ZipArchive::extractTo(/home/name/files/complete//filename.txt): failed to open stream: Permission denied
Filename: controllers/import.php
Line Number: 66

脚本:

$txt_file: "/home/name/files/complete/Data.zip";
$server_txt_file = "/TXT/Data.zip";

if (ftp_get($ftp_conn, $txt_file, $server_txt_file, FTP_BINARY))
{
    $zip = new ZipArchive;
    if ($zip->open($txt_file) === TRUE) 
    {
        $zip->extractTo('/home/name/files/complete/');
        $zip->close();
        unlink($txt_file);
    }
}

几天来我一直在努力解决这个问题,但我无法弄清楚问题出在哪里。

错误告诉你你需要知道的一切:

failed to open stream: Permission denied

因此您的 php 进程没有写入指定文件夹的权限。所以你应该更改指定文件夹的权限。