找不到类“ZipArchive”

Posted

技术标签:

【中文标题】找不到类“ZipArchive”【英文标题】:Class 'ZipArchive' not found 【发布时间】:2018-10-19 01:46:16 【问题描述】:

我想实现什么

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

我尝试的第一种方法

在终端执行以下操作

# 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 执行处理时,发生错误

/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php: 71
Class 'ZipArchive' not found

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

# 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

我尝试的第二种方法

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

# yum install php71-php-devel.x86_64
# yum install zlib-devel.x86_64
# pecl install zip

第三条命令出现如下错误

# pecl install zip
No releases available for package "pecl.php.net/zip"
install failed

由于上述错误,下载文件并执行phpize不会再继续出错...

# 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 zipphpize 出现错误。

附加信息(固件/工具版本等)

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

PHP:7.1.14

【问题讨论】:

【参考方案1】:

CentOS 8 解决方案:

yum install php74-libzip.x86_64
yum install php-pecl-zip

【讨论】:

【参考方案2】:

首先,运行这个命令

sudo yum install php-zip

更改 php.ini 文件后

extension=zip.so

现在运行这个命令。

sudo service httpd restart
sudo service php-fpm restart

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

【讨论】:

【参考方案3】:

要出现 ZipArchive 类,PHP 需要安装 zip extension。

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

【讨论】:

我参考通过PECL安装尝试使用phpize,但没有成功。在不重新安装 PHP 的情况下我可以尝试其他方法吗?

以上是关于找不到类“ZipArchive”的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:仅从在线下载为 zip 时未找到“ZipArchive”类

AndroidStudio 很多类红色高亮找不到,可以编译运行

SpringBoot找不到类异常解决

找不到 Spring Boot Mongo Reactive 类 - 找不到类 [org.springframework.data.mongodb.MongoDatabaseFactory]

找不到xml找不到类

java 主启动类找不到