我有一个问题,我在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
文件放到脚本所在的文件夹中,但它不起作用 .
12 回答
First of all, The solution for remote server:
如果您使用 cpanel ,则可能已安装zip扩展但未激活 . 你需要激活它 . 在这种情况下,您需要转到 cpanel > inside software section > click on PHP version . 然后找到 zip 并检查它 . 现在保存 .
You should see like the image.
刷新页面 . 错误应该消失 .
注意:如果找不到,请联系服务提供商 . 他们会为你安装 .
在使用Ubuntu nginx php7的Amazon ec2上,我遇到了同样的问题,使用以下方法解决了这个问题:
sudo apt-get install php7.0-zip
在ubuntu桌面上,我必须这样做 .
这安装了库,但我仍然遇到同样的错误,所以我不得不重启apache:
它工作 .
我想在Debian / Ubuntu上添加它,你可能需要在安装相关软件包之后使用 enable 扩展名 . 所以:
为了ZipArchive class存在,PHP需要安装zip extension .
有关安装说明(Linux和Windows),请参阅this page .
这很有效
并且无需手动重启
php7.0-fpm
.您还需要使用zip支持编译PHP . 手册说明如下:
仅在服务器上安装正确的扩展是不够的 . 看看Pekka之前发布的安装说明链接 . 我的回答只是对他的澄清 .
PHP 5.2.0及更高版本
Linux系统
要使用这些函数,必须使用--enable-zip configure选项编译带zip支持的PHP .
视窗
Windows用户需要在php.ini中启用php_zip.dll才能使用这些功能 .
如果您有WHM可用,则更容易 .
登录 WHM .
在 Software 标签下转到 EasyApache 4(或您拥有的任何版本) .
在当前安装的包 click Customize 下 .
转到 PHP Extensions ,搜索类型为“ zip ”(不含引号),
你应该看到3个模块
检查所有这些,
单击蓝色按钮几次以完成该过程 .
这对我有用 . 谢天谢地,我有WHM可用 .
安装服务器的 CentOS 和 cPanel 也遇到了同样的问题 . 我通过cPanel安装了zipArchive软件包,并没有按预期工作 . 尝试了这么多修复后,建议每个人和每个地方只为以下工作 .
首先使用以下命令查找正确包的名称
然后使用以下代码 .
在我的情况下,安装zipArchive的正确代码是
我从这个链接得到了解决方案 . How can I inslatt zipArchive on PHP 7.2 with CentOS 7?
并且这个安装以某种方式启用了该包,它也重新启动了有效的服务,并且在完成上述代码的执行后,zipArchive问题就消失了 .
Centos 6
1)你应该使用
ZipArchive
文件require
你的文件 .2)或者使用
__autoload
类的方法 . 在PHP 5中,它是一个greate方法__autoload() .http://www.php.net/manual/en/language.oop5.autoload.php