在linux环境下,PharData extractTo方法无法提取.tar.gz


PharData extractTo method failed to extract .tar.gz on linux environment

我想将.tar.gz文件解压缩到特定文件夹中。我已经使用cURL从MailChimp批处理操作下载了.tar.gz文件。我已经使用下面的代码提取tar文件。

$phar = new 'PharData('upload/test.tar.gz');
  $phar->extractTo('upload/',null, true);

它在windows环境下工作。但是在Linux(Ubuntu)上,当运行上面的代码时,我得到了以下错误。

 Uncaught exception 'PharException' with message 'Extraction from phar "upload/test.tar" failed: Cannot extract ".", internal error'

我已经为上传文件夹设置了默认的apache用户和组权限

  sudo chown -R www-data:www-data upload/

PHP版本:5.6.24

我有附加样例。tar.gz文件:http://www.simbanic.com/_projects/test/05c902076e.tar.gz

我在使用MailChimp批处理响应归档时遇到了同样的问题。愚蠢的解决方案,但它有效…

$p = new PharData($tarGzArchive, RecursiveDirectoryIterator::SKIP_DOTS);
$p->convertToData(Phar::ZIP);
$zip = new ZipArchive;
$res = $zip->open($createdZipArchive);
if ($res === TRUE) {
    $zip->extractTo($destinationPath);
    $zip->close();
}