Php 致命错误:类';ZipArchive';在中找不到
我有一个问题,我在Linux服务器上安装了'Archive_Zip 0.1.1',但是当我试图运行脚本来创建Zip文件时,它会给出致命错误 致命错误:在 我把密码放在哪里了Php 致命错误:类';ZipArchive';在中找不到,php,zip,ziparchive,Php,Zip,Ziparchive,我有一个问题,我在Linux服务器上安装了'Archive_Zip 0.1.1',但是当我试图运行脚本来创建Zip文件时,它会给出致命错误 致命错误:在 我把密码放在哪里了 $zip = new ZipArchive; var_dump($zip); $res = $zip->open($filename, ZipArchive::OVERWRITE); if ($res !== TRUE) { echo 'Error: Unable to create zip file';
$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;
$zip=新的ZipArchive;
var_dump($zip);
$res=$zip->open($filename,ZipArchive::OVERWRITE);
如果($res!==TRUE){
echo“错误:无法创建zip文件”;
出口
}
if(is_文件($src)){
$zip->addFile($src);
}否则{
//echo“
”.dirname(_文件).$src;//'/install1';
如果(!is_dir($src)){
$zip->close();
@取消链接($filename);
echo“错误:未找到文件”;
出口
}
recurse_-zip($src,$zip,$path_-length);
}
$zip->close();
echo“
文件名”。$filename;
但是它找不到类文件
请告诉我解决办法。我应该如何解决这个问题?
我还将php.ini
文件放在脚本所在的文件夹中,但它不起作用。要显示脚本,php需要安装脚本
有关安装说明(Linux和Windows),请参阅。1)您应该需要您的文件和ZipArchive
文件
require 'path/to/file/ZipArchive.php';
2) 或者使用类的\u autoload
方法。
在PHP5中,它是一个greate方法_autoload()
您还需要使用zip支持编译PHP。手册说明如下:
为了使用这些函数,必须使用--enable-zip-configure选项编译支持zip的PHP
仅仅在服务器上安装正确的扩展是不够的。请查看先前发布的安装说明链接Pekka。我的回答只是对他的澄清。PHP5.2.0及更高版本
Linux系统
为了使用这些函数,必须使用--enable-zip-configure选项编译支持zip的PHP
窗户
Windows用户需要在php.ini中启用php_zip.dll才能使用这些函数。在使用Ubuntu+nginx+php7的Amazon ec2上,我遇到了同样的问题,使用以下方法解决了它:
sudo apt get安装php7.0-zip
在ubuntu桌面上,我不得不这么做
sudo apt-get install php5.6-zip
这安装了库,但我仍然不断收到相同的错误,因此我必须使用以下命令重新启动apache:
sudo service apache2 restart
它成功了 这起作用了
apt-get install php7.0-zip
无需手动重新启动php7.0-fpm
解包php7.0-zip
(7.0.16-4+deb.sury.org~trusty+1
)…
处理php7.0-fpm的触发器(7.0.11-1+deb.sury.org~trusty+1
)…
php7.0-fpm
stop/waiting
php7.0-fpm
启动/运行,进程1572
php7.0-fpm
stop/waiting
php7.0-fpm
启动/运行,流程1777
设置php7.0-zip
(7.0.16-4+deb.sury.org~trusty+1
)…
语言环境:无法将LC\u ALL
设置为默认语言环境:没有这样的文件或目录
使用新版本创建配置文件/etc/php/7.0/mods available/zip.ini
处理php7.0-fpm的触发器(7.0.11-1+deb.sury.org~trusty+1
)…
php7.0-fpm
stop/waiting
php7.0-fpm
启动/运行,进程2354
php7.0-fpm
stop/waiting
php7.0-fpm
启动/运行,流程2397
我在这里没有看到它,所以我想补充一点,在Debian/Ubuntu上,您可能需要在安装相关软件包后启用扩展。因此:
sudo apt-get install php-zip
sudo phpenmod zip
sudo service apache2 restart
首先,远程服务器解决方案:
如果您使用的是cpanel,则可能安装了zip扩展,但未激活。你需要激活它。对于这种情况,您需要转到cpanel>内部软件部分>单击PHP版本。然后找到zip并检查它。现在保存
您应该看到与图像类似的内容。
刷新页面。错误应该消失
注意:如果找不到,请与服务器提供商联系。它们将为您安装。如果您有WHM,安装起来会更容易
登录到WHM
转到软件选项卡下的EasyApache4(或您拥有的任何版本)
在“当前安装的软件包”下,单击“自定义”
转到PHP扩展,在搜索类型“zip”(不带引号)中
您应该看到3个模块
全部检查一下
单击蓝色按钮几次以完成此过程
这对我有用。
谢天谢地,我有WHM可用。我在安装了CentOS和cPanel的服务器上遇到了同样的问题。我通过cPanel安装了zipArchive包,但没有按预期工作。
在尝试了这么多的修复后,我发现每一个地方都有下面这些对我有用的地方
首先用下面的命令找到正确包的名称
yum search zip |grep -i php
然后使用下面的代码
yum install your_zip_package_name_with_php_version
在我的例子中,安装zipArchive的正确代码是
yum install php-pecl-zip.x86_64
我从这个链接得到了解决方案。
这次安装不知何故也启用了该软件包,它还重新启动了有效的服务,并且在完成上述代码的执行后,zipArchive问题消失了。Centos 6
或者任何基于RHEL的口味
yum install php-pecl-zip
service httpd restart
我遇到了同样的问题,它使用两个命令行解决了:
sudo-apt-install-php-zip
然后重新启动Apache的web服务器
sudo服务apache2重启
在应用引擎标准环境中部署wordpress时,我在GCP上遇到了这个问题。这就解决了它:
sudo apt-get install php7.2-zip
适用于PHP7.x
sudo apt-get install php-zip
sudo apt-get install php5.x-zip
// (for example sudo apt-get install php5.6-zip)
适用于PHP 5.x
sudo apt-get install php-zip
sudo apt-get install php5.x-zip
// (for example sudo apt-get install php5.6-zip)
然后重新启动Apache服务器
sudo service apache2 restart
适用于Remi上的Centos 7和PHP 7.3
搜索zip扩展名:
$yum搜索php
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
FROM php:7.3-apache
RUN set -eux \
&& apt-get update \
&& apt-get install -y libzip-dev zlib1g-dev \
&& docker-php-ext-install zip