Неустранимая ошибка: класс 'ZipArchive' не найден в - PullRequest
143 голосов
/ 06 октября 2010

У меня проблема с установкой Archive_Zip 0.1.1 на сервере Linux, но когда я пытаюсь запустить скрипт для создания zip-файла, он выдает фатальную ошибку

Неустранимая ошибка: класс ZipArchive не найден в ...

где я положил код

$zip = new ZipArchive;
var_dump($zip);
$res = $zip->open($filename, ZipArchive::OVERWRITE);
if ($res !== TRUE) {
    echo 'Error: Unable to create zip file';
    exit;
}
if (is_file($src)) {
    $zip->addFile($src);
} else {
    // echo "<br>" . dirname(__FILE__) . $src;//'/install1';
    if (!is_dir($src)) {
         $zip->close();
         @unlink($filename);
         echo 'Error: File not found';
         exit;
    }
    recurse_zip($src, $zip, $path_length);
}
$zip->close();
echo "<br>file name ".$filename;

но он не находит файл класса.

Пожалуйста, скажите мне решение. Что я должен сделать, чтобы решить проблему? Я также положил файл php.ini в папку, где находится скрипт, но он не работает.

Ответы [ 13 ]

174 голосов
/ 06 октября 2010

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

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

77 голосов
/ 06 мая 2016

В Amazon ec2 с Ubuntu + nginx + php7 у меня были те же проблемы, я решил их с помощью:

sudo apt-get install php7.0-zip

35 голосов
/ 28 октября 2016

На рабочем столе Ubuntu я должен был сделать.

sudo apt-get install php5.6-zip

Это установило библиотеку, но я продолжал получать ту же ошибку, поэтому мне пришлось перезапустить apache, используя:

sudo service apache2 restart

и это сработало.

13 голосов
/ 16 октября 2017

Я не вижу его здесь, поэтому я хотел бы добавить, что в Debian / Ubuntu вам может понадобиться включить расширение после установки соответствующего пакета. Итак:

sudo apt-get install php-zip
sudo phpenmod zip
sudo service apache2 restart
9 голосов
/ 17 ноября 2017

Прежде всего, решение для удаленного сервера:

Если вы используете cpanel , возможно, у вас установлено расширение zip, но оно не активировано.Вам нужно активировать его.Для этого вам нужно перейти на cpanel> в разделе программного обеспечения> нажать на версию PHP .Затем найдите zip и проверьте его.Теперь сохраните.

Вы должны увидеть как изображение. enter image description here

Обновить страницу.Ошибка должна исчезнуть.

Примечание. Если вы не нашли, обратитесь к поставщику сервера.Они установят для вас.

5 голосов
/ 13 марта 2017

Это сработало

apt-get install php7.0-zip

и нет необходимости перезапускать php7.0-fpm вручную.

Распаковка php7.0-zip (7.0.16-4+deb.sury.org~trusty+1) ...
Обработка триггеров для php7.0-fpm (7.0.11-1+deb.sury.org~trusty+1) ...
php7.0-fpm остановка / ожидание
php7.0-fpm запуск / запуск, процесс 1572
php7.0-fpm остановка / ожидание
php7.0-fpm запуск / запуск, процесс 1777
Настройка php7.0-zip (7.0.16-4+deb.sury.org~trusty+1) ...
языковой стандарт: невозможно установить LC_ALL для стандартного языкового стандарта: такого файла или каталога нет

Создание файла конфигурации /etc/php/7.0/mods-available/zip.ini с новой версией
Обработка триггеров для php7.0-fpm (7.0.11-1+deb.sury.org~trusty+1) ...
php7.0-fpm остановка / ожидание
php7.0-fpm запуск / запуск, процесс 2354
php7.0-fpm остановка / ожидание
php7.0-fpm запуск / запуск, процесс 2397

4 голосов
/ 06 октября 2010

Вам также нужно скомпилировать PHP с поддержкой zip.В руководстве говорится следующее:

Чтобы использовать эти функции, вы должны скомпилировать PHP с поддержкой zip с помощью параметра конфигурации --enable-zip.

Недостаточно просто установить правильные расширения на сервере.Посмотрите ссылку на инструкцию по установке Pekka, опубликованную ранее.Мой ответ - только разъяснение его.

3 голосов
/ 15 мая 2018

Если у вас есть доступ к WHM, это проще.

Войдите на WHM .

Перейдите на EasyApache 4 (или на любую другую версиюиметь) на вкладке Программное обеспечение .

В разделе Установленные пакеты нажмите Настроить .

Перейдите на Расширения PHP , в поискевведите " zip " ( без кавычек ),

вы должны увидеть 3 модуля

проверить все из них,

нажмитеСинюю кнопку несколько раз, чтобы завершить процесс.

Это сработало для меня.К счастью, у меня есть WHM.

3 голосов
/ 01 июля 2013

PHP 5.2.0 и более поздние версии

Системы Linux

Чтобы использовать эти функции, вы должны скомпилировать PHP с поддержкой zip с помощью параметра конфигурации --enable-zip.

Windows

Пользователи Windows должны включить php_zip.dll внутри php.ini, чтобы использовать эти функции.

2 голосов
/ 10 октября 2018

Centos 6

yum install php-pecl-zip

service httpd restart
...