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

984   11  

11 ответов:

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

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

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

sudo apt-get install php7.0-zip

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

sudo apt-get install php5.6-zip

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

sudo service apache2 restart

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

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

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

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

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

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

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

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

он работал

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

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

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

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

в PHP 5.2.0 и выше

системы Linux

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

Windows

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

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

войдите в активность.

на EasyApache 4 (или любая версия u есть) под программа tab.

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

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

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

регистрация всех из них,

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

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

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

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

yum search zip |grep -i php

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

yum install your_zip_package_name_with_php_version

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

yum install php-pecl-zip.x86_64

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

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

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

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

Comments

    Ничего не найдено.