Я буду использовать PhpSpreadsheet при разработке веб-приложений на PHP, Я пытаюсь настроить расширение PHP Zip, необходимое для включения PhpSpreadsheet на сервере. Я попробовал два метода, но мне не удалось их правильно настроить, поэтому я хотел бы, чтобы вы сказали мне решение и другие вещи, которые нужно проверить.
Выполните на терминале следующее
# 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
После отмены настройки 1-го (удалить пакет, удалить скопированный файл) Выполните на терминале следующее
# 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






Для присутствия класса ZipArchive в PHP должен быть установлен расширение zip.
См. эта страница для инструкций по установке (как для Linux, так и для Windows).
сначала запустите эту команду
sudo yum install php-zip
после изменения файла php.ini
extension=zip.so
теперь запустите эту команду.
sudo service httpd restart
sudo service php-fpm restart
он работает для меня в центовой ОС на сервере Amazon.
Решение для CentOS 8:
yum install php74-libzip.x86_64
yum install php-pecl-zip
Я попытался использовать
phpize, обратившись к Установка через PECL, но это не сработало. Что еще я могу попробовать, не переустанавливая PHP?