PHP Zip功能不起作用(Debian,Apache,PHP5)

时间:2013-07-11 16:13:19

标签: php apache zip debian

我在debian服务器上安装了apache并添加了php。但是,如果我尝试创建.zip文件,它将无法正常工作。没有错误消息但是.zip文件没有被创建。

代码:

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
$zip->addFile('Banner1.png', 'Banner1.png');
$zip->close();
?>

2 个答案:

答案 0 :(得分:2)

最有可能的是,php运行的用户(在debian上,默认情况下为www-data)没有对目录的写入权限。检查各种函数的结果如下:

<?php
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
if (!$res){
    echo 'Error while creating zip file: ' . $zip->getStatusString();
    exit();
}
if (! $zip->addFile('Banner1.png', 'Banner1.png')) {
    echo 'Error while adding Banner1: ' . $zip->getStatusString();
    exit();
}
if (! $zip->close()) {
    echo 'Error while closing: ' . $zip->getStatusString();
    exit();
}

在使用默认配置的debian上,您可以使用chownchmod配置权限。例如,要允许Web服务器写入该目录,请尝试

sudo chown www-data /path/to/directory/with/php/file
sudo chmod u+rwx /path/to/directory/with/php/file

答案 1 :(得分:0)

Sûre你的$ res是好的吗?

if ($res === TRUE) {
    echo 'ok';
    $zip->addFile('Banner1.png', 'Banner1.png');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}