Класс ZipArchive не найден

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

Я буду использовать 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-й способ я пробовал

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
0
9 704
3

Ответы 3

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

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

Я попытался использовать phpize, обратившись к Установка через PECL, но это не сработало. Что еще я могу попробовать, не переустанавливая PHP?

ta96 09.05.2018 06:51

сначала запустите эту команду

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

Другие вопросы по теме