PHP警告 ZipArchive::extractTo(): 拒绝许可

11

我创建了一个应用程序,使用了 ZipArchive 类中的 extractTo() 方法(在 PHP 中是标准库),并且在本地的 Windows 7 上的 Apache 服务器上进行了测试,没有遇到任何问题。但是当我尝试在某个 Unix 生产服务器上运行它时,会抛出异常。

Warning: ZipArchive::extractTo(): Permission denied in /path/to/file.php on line 27

我甚至为应用程序使用的每个文件夹设置了0777的chmod权限,但这并没有帮助。

你有任何想法是出了什么问题吗?


2
脚本需要能够递归访问每个父文件夹,这并不意味着777,而是更多的644。 - Korvin Szanto
那个不适用于777的,用644会有效吗? - undefined
2个回答

17

对于Linux/macOS用户,更改

$zip->extractTo('/Directory/');

To

:这里缺少完整的上下文,无法准确翻译。
$zip->extractTo('Directory/');

也可以提供帮助。


谢谢您分享这个答案——它立即解决了我在Linux终端中运行ZipArchive的问题。 - dimButTries
非常感谢,我永远也想不到这个! - Remco Bravenboer
浪费了一个小时才意识到这可能真的有效。但为什么呢?路径没有斜杠/隐含着根目录的意思吗? - undefined

5

检查运行Apache的用户(有时是用户“www-data”)是否对相关的zip文件具有访问权限。

还可以尝试将该文件的所有者更改为运行Apache的用户(使用top命令查看用户)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接