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

У меня проблема с установкой 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 в папку, где находится скрипт, но он не работает.

Ответ 2

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

sudo apt-get install php7.0-zip

Ответ 3

На рабочем столе ubuntu мне пришлось делать.

sudo apt-get install php5.6-zip

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

sudo service apache2 restart

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

Ответ 4

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

sudo apt-get install php-zip
sudo phpenmod zip
sudo service apache2 restart

Ответ 5

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

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

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

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

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

Ответ 6

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

apt-get install php7.0-zip

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

Unpacking php7.0-zip (7.0.16-4+deb.sury.org~trusty+1)...
Processing triggers for php7.0-fpm (7.0.11-1+deb.sury.org~trusty+1)...
php7.0-fpm stop/waiting
php7.0-fpm start/running, process 1572
php7.0-fpm stop/waiting
php7.0-fpm start/running, process 1777
Setting up php7.0-zip (7.0.16-4+deb.sury.org~trusty+1)...
locale: Cannot set LC_ALL to default locale: No such file or directory

Creating config file /etc/php/7.0/mods-available/zip.ini with new version
Processing triggers for php7.0-fpm (7.0.11-1+deb.sury.org~trusty+1)...
php7.0-fpm stop/waiting
php7.0-fpm start/running, process 2354
php7.0-fpm stop/waiting
php7.0-fpm start/running, process 2397

Ответ 7

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

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

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

Ответ 8

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

Войдите в WHM.

Перейдите на EasyApache 4 (или любую другую имеющуюся у вас версию) на вкладке Software.

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

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

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

проверь их все,

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

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

Ответ 9

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

Системы Linux

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

Окна

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

Ответ 10

У меня была такая же проблема с CentOS и cPanel установленным сервером. Я установил пакет zipArchive через cPanel и не работал должным образом. После того, как я попробовал с таким количеством исправлений, предложенных везде и сразу, мне помогло только следующее.

Сначала найдите имя для правильного пакета с помощью приведенной ниже команды

yum search zip |grep -i php

Затем используйте приведенный ниже код.

yum install your_zip_package_name_with_php_version

В моем случае правильный код для установки zipArchive был

yum install php-pecl-zip.x86_64

У меня было решение по этой ссылке. Как я могу использовать zipArchive в PHP 7.2 с CentOS 7?

И эта установка как-то включила этот пакет, а также перезапустила работающие сервисы, и после завершения выполнения вышеуказанного кода проблема zipArchive исчезла.

Ответ 11

Centos 6

yum install php-pecl-zip

service httpd restart

Ответ 12

У меня была та же проблема, и она была решена с помощью двух командных строк:

sudo apt install php-zip

затем перезагрузите ваш веб-сервер для Apache

sudo service apache2 restart

Ответ 13

Я столкнулся с этой проблемой в GCP при развертывании WordPress в среде App Engine Standard. Это решило это:

sudo apt-get install php7.2-zip

Ответ 14

1) Вы должны require ваш файл с файлом ZipArchive.

require 'path/to/file/ZipArchive.php';

2) Или используйте метод __autoload класса. В PHP 5 это приветливый метод __autoload().

function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1(); // creating an object without require.

http://www.php.net/manual/en/language.oop5.autoload.php