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 进程没有写入指定文件夹的权限。所以你应该更改指定文件夹的权限。
在我的脚本中,我需要连接到 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 进程没有写入指定文件夹的权限。所以你应该更改指定文件夹的权限。