【问题标题】:Class 'ZipArchive' not found找不到类“ZipArchive”
【发布时间】: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

【问题讨论】:

    标签: php linux rhel phpspreadsheet


    【解决方案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 的情况下我可以尝试其他方法吗?
        猜你喜欢
        • 2020-02-25
        • 2018-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-25
        • 1970-01-01
        相关资源
        最近更新 更多