我有一个问题,我在Linux服务器上安装'Archive_Zip 0.1.1',但当我试图运行脚本创建zip文件时,它给出了致命的错误

致命错误:类ZipArchive没有在…

我把密码放哪了

$zip = new ZipArchive;
var_dump($zip);
$res = $zip->open($filename, ZipArchive::OVERWRITE);
if ($res !== TRUE) {
    echo 'Error: Unable to create zip file';
    exit;
}
if (is_file($src)) {
    $zip->addFile($src);
} else {
    // echo "<br>" . dirname(__FILE__) . $src;//'/install1';
    if (!is_dir($src)) {
         $zip->close();
         @unlink($filename);
         echo 'Error: File not found';
         exit;
    }
    recurse_zip($src, $zip, $path_length);
}
$zip->close();
echo "<br>file name ".$filename;

但是它没有找到类文件。

请告诉我解决办法。我该怎么解决这个问题呢? 我还把php.ini文件放在脚本所在的文件夹中,但它不起作用。


当前回答

如果你有WHM可用,那就更容易了。

登录WHM。

在“软件”选项卡下进入EasyApache 4(或任何你拥有的版本)。

在“当前安装的包”下单击“自定义”。

进入PHP扩展,搜索“zip”(不带引号),

您应该看到3个模块

都检查一下,

点击几次蓝色按钮来完成这个过程。

这对我很管用。 谢天谢地,我有WHM可用。

其他回答

在Amazon ec2上,Ubuntu + nginx + php7,我有同样的问题,解决它使用:

Sudo apt-get install php7.0-zip

对于PHP 7.4 >,默认情况下不再存在ZipArchive,您需要安装和配置它。

我强烈建议你使用一个可以包含在你的项目中的库,比如https://github.com/zanysoft/laravel-zip 这个库只是原生ZipArchive的包装器

适用于Centos 7和Remi上的PHP 7.3

搜索zip扩展名:

$ yum search php73 | grep zip
php73-php-pecl-zip.x86_64 : A ZIP archive management extension

扩展名是php73-php-pecl-zip.x86_64。要在运行单一版本PHP的服务器上安装它,删除php73前缀:

$ sudo yum --enablerepo=remi-php73 install php-pecl-zip #for server running single PHP7.3 version
$ #sudo yum --enablerepo=remi-php73 install php73-php-pecl-zip # for server running multiple PHP versions

重启PHP:

$ sudo systemctl restart php-fpm

检查已安装的PHP扩展:

$ php -m
[PHP Modules]
apcu
bcmath
bz2
...
zip
zlib

您需要检查PHP版本

如果php版本是5.6,你需要安装php5.7-zip

sudo apt-get install php5.6-zip

然后

sudo service apache2 restart

希望能有所帮助

对于我的工作,第一次审查

   php -m
   php -version

稍后安装扩展

apt-get update 
apt-get install php7.2-zip
systemctl restart apache2