首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到类“ZipArchive”

问找不到类“ZipArchive”
EN

Stack Overflow用户
提问于 2018-05-09 11:05:43
回答 3查看 11.1K关注 0票数 4

我想要认识到的是

我将在PHP应用程序开发中使用PhpSpreadsheet,我正在尝试配置PhpSpreadsheet在服务器上启用所需的PHP Zip扩展。我尝试了两种方法,但我不能很好地设置它,所以我希望您告诉我解决方案和其他需要检查的事情。

我尝试的第一种方法

在终端执行以下命令

代码语言:javascript
复制
# yum install php71-php-pecl-zip.x86_64
# cp /etc/opt/remi/php71/php.d/40-zip.ini /etc/php.d/40-zip.ini
# systemctl stop httpd.service
# systemctl start httpd.service

当从Web浏览器使用PhpSpreadsheet执行处理时,发生错误

代码语言:javascript
复制
/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php: 71
Class 'ZipArchive' not found

我确认终端启用了Zip扩展,但我不知道原因。

代码语言:javascript
复制
# php --info
Additional. Ini files parsed =>
·
·
/etc/php.d/40-zip.ini
·
·
zip

Zip => enabled
Zip version => 1.15.2
Libzip headers version => 1.3.2
Libzip library version => 1.5.1

zlib

ZLib Support => enabled
Stream Wrapper => compress.zlib: / /
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.7
Linked Version => 1.2.7

Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value

# php vendor / phpoffice / phpspreadsheet / samples / index.php
Requirement check:
PHP 5.6.0 ... passed
PHP extension XML ... passed
PHP extension xmlwriter ... passed
PHP extension mbstring ... passed
PHP extension ZipArchive ... passed
PHP extension GD (optional) ... passed
PHP extension dom (optional) ... passed

第二种我尝试过的方法

取消第一个(卸载包,删除复制的文件)的设置后,在终端执行以下操作

代码语言:javascript
复制
# yum install php71-php-devel.x86_64
# yum install zlib-devel.x86_64
# pecl install zip

第三个命令中出现以下错误

代码语言:javascript
复制
# pecl install zip
No releases available for package "pecl.php.net/zip"
install failed

由于上面的错误,下载文件和执行phpize将不会再次出现错误...

代码语言:javascript
复制
# wget http://pecl.php.net/get/zip-1.15.2.tgz
# phpize
Can not find PHP headers in /usr/include/php
The php-devel package is required for use of this command.

我不明白为什么在pecl install zip和phpize中会出现错误。

其他信息(固件/工具版本等)

操作系统: Red Hat Enterprise Linux Server 7.4版(Maipo)

PHP: 7.1.14

EN

回答 3

Stack Overflow用户

发布于 2019-12-28 13:35:44

首先,运行以下命令

代码语言:javascript
复制
sudo yum install php-zip

更改php.ini文件后

代码语言:javascript
复制
extension=zip.so

现在运行此命令。

代码语言:javascript
复制
sudo service httpd restart
sudo service php-fpm restart

它在亚马逊服务器上的cent os中为我工作。

票数 3
EN

Stack Overflow用户

发布于 2020-12-06 18:53:59

针对CentOS 8的解决方案:

代码语言:javascript
复制
yum install php74-libzip.x86_64
yum install php-pecl-zip
票数 1
EN

Stack Overflow用户

发布于 2018-05-09 12:02:36

要使ZipArchive类存在,需要安装zip extension。

有关安装说明,请参阅this page (包括Linux和Windows)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50244935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档