Неустранимая ошибка: класс '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 файл в папку, где находится скрипт, но он не действовать.
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 и проверить его. Теперь спаси.
вы должны видеть, как изображение.
обновить страницу. Этот ошибка должна исчезнуть.
Примечание: Если вы не нашли, обратитесь к поставщику сервера. Они установят для вас.
он работал
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запуск / запуск, процесс 1572php7.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запуск / запуск, процесс 2354php7.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.

Comments