Класс 'ZipArchive' не найден - PullRequest
0 голосов
/ 09 мая 2018

Что я хочу реализовать

Я буду использовать PhpSpreadsheet при разработке веб-приложений на PHP, Я пытаюсь настроить расширение PHP Zip, необходимое для включения PhpSpreadsheet на сервере. Я попробовал два метода, но я не смог правильно его настроить, поэтому я хотел бы, чтобы вы сказали мне решение и другие вещи, которые нужно проверить.

1-й метод, который я пробовал

Выполнить следующее в терминале

# 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

При выполнении обработки с использованием 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

2-й способ, который я пробовал

После отмены настройки 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 zip и phpize.

Дополнительная информация (версия ПО / инструмента и т. Д.)

ОС: Red Hat Enterprise Linux Server версии 7.4 (Maipo)

PHP: 7.1.14

1 Ответ

0 голосов
/ 09 мая 2018

Для присутствия класса ZipArchive в PHP должно быть установлено расширение zip .

См. на этой странице для инструкций по установке (как для Linux, так и для Windows).

...