it-swarm.com.de

Schwerwiegender Fehler: Klasse 'ZipArchive' wurde nicht gefunden

Ich habe ein Problem, dass ich 'Archive_Zip 0.1.1' auf einem Linux-Server installiere, aber wenn ich versuche, das Skript auszuführen, um die Zip-Datei zu erstellen, wird der schwerwiegende Fehler angezeigt

Schwerwiegender Fehler: Klasse ZipArchive wurde nicht gefunden in ...

wo ich den Code einstelle 

$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;

aber die Klassendatei wird nicht gefunden. 

Bitte sag mir die Lösung. Was muss ich tun, um das Problem zu beheben? ____ Ich füge auch php.ini-Datei in den Ordner ein, in dem sich das Skript befindet, aber es funktioniert nicht.

127
Parag Chaure

Damit die ZipArchive-Klasse vorhanden ist, muss für PHP die Zip-Erweiterung installiert sein.

Siehe diese Seite für Installationsanweisungen (sowohl Linux als auch Windows).

158
Pekka 웃

Auf Amazon ec2 mit Ubuntu + Nginx + PHP7 hatte ich die gleichen Probleme. 

Sudo apt-get install php7.0-Zip

72
star18bit

Auf Ubuntu Desktop musste ich tun.

Sudo apt-get install php5.6-Zip

Dies installierte die Bibliothek, aber ich erhielt immer noch den gleichen Fehler, sodass ich Apache neu starten musste:

Sudo service Apache2 restart

und es hat funktioniert. 

28
Mubashar Abbas

Ich sehe es hier nicht, daher möchte ich hinzufügen, dass Sie unter Debian/Ubuntu nach der Installation des entsprechenden Pakets enable der Erweiterung benötigen. So:

Sudo apt-get install php-Zip
Sudo phpenmod Zip
Sudo service Apache2 restart
12
lorenzo-s

Zunächst die Lösung für Remote-Server:

Wenn Sie cpanel verwenden, ist möglicherweise die Zip-Erweiterung installiert, aber nicht aktiviert. Sie müssen es aktivieren. In diesem Fall müssen Sie im Software-Bereich zu cpanel> gehen und auf PHP version klicken. Dann finden Sie Zip und überprüfen Sie es. Jetzt speichern.

Du solltest das Bild sehen. enter image description here

Seite neu laden. Der Fehler sollte verschwinden. 

Hinweis: Wenn Sie dies nicht finden, wenden Sie sich an den Serveranbieter. Sie werden für Sie installieren.

6

Das hat funktioniert

apt-get install php7.0-Zip

und php7.0-fpm muss nicht manuell neu gestartet werden.

php7.0-Zip (7.0.16-4+deb.sury.org~trusty+1) auspacken ...
Verarbeitung von Triggern für php7.0-fpm (7.0.11-1+deb.sury.org~trusty+1) ...
php7.0-fpm stoppen/warten
php7.0-fpm start/running, Prozess 1572
php7.0-fpm stoppen/warten
php7.0-fpm start/running, Prozess 1777
php7.0-Zip (7.0.16-4+deb.sury.org~trusty+1) einrichten ...
Gebietsschema: LC_ALL kann nicht auf das Standardgebietsschema gesetzt werden: Keine solche Datei oder Verzeichnis 

Konfigurationsdatei /etc/php/7.0/mods-available/Zip.ini mit neuer Version erstellen
Verarbeitung von Triggern für php7.0-fpm (7.0.11-1+deb.sury.org~trusty+1) ...
php7.0-fpm stoppen/warten
php7.0-fpm start/running, Prozess 2354
php7.0-fpm stoppen/warten
php7.0-fpm start/running, Prozess 2397 

5
prosti

Sie müssen auch PHP mit Zip-Unterstützung kompilieren. Das Handbuch sagt folgendes:

Um diese Funktionen verwenden zu können, müssen Sie PHP mit der Zip-Unterstützung kompilieren, indem Sie die Konfigurationsoption --enable-Zip verwenden. 

Es reicht nicht aus, einfach die richtigen Erweiterungen auf dem Server zu installieren. Schauen Sie sich den Link zur Installationsanleitung an, den Pekka zuvor veröffentlicht hat. Meine Antwort ist nur eine Klarstellung von ihm.

3
Jeremy

PHP 5.2.0 und höher

Linux-Systeme

Um diese Funktionen verwenden zu können, müssen Sie PHP mit der Zip-Unterstützung kompilieren, indem Sie die Konfigurationsoption --enable-Zip verwenden.

Windows

Windows-Benutzer müssen php_Zip.dll in php.ini aktivieren, um diese Funktionen verwenden zu können.

3

Wenn Sie WHM zur Verfügung haben, ist es einfacher.

Melden Sie sich bei WHM an.

Gehen Sie zu EasyApache 4 (oder welcher Version auch immer) auf der Registerkarte Software.

Unter Aktuell installierte Pakete klicken Sie auf Anpassen.

Gehen Sie zu PHP Extensions, in Suchtyp "Zip" (ohne Anführungszeichen).

sie sollten 3 Module sehen

überprüfe sie alle,

klicken Sie mehrmals auf die blaue Schaltfläche, um den Vorgang abzuschließen.

Das hat bei mir funktioniert. Zum Glück habe ich WHM zur Verfügung.

2
temo

Ich hatte das gleiche Problem mit dem installierten Server CentOS und cPanel. Ich habe das zipArchive-Paket über cPanel installiert und funktionierte nicht wie erwartet ... Nachdem ich mit so vielen Fixes versucht hatte, schlug jeder und überall genau das Folgende vor.

Suchen Sie zuerst den Namen für das richtige Paket mit dem folgenden Befehl

yum search Zip |grep -i php

Verwenden Sie dann den untenstehenden Code.

yum install your_Zip_package_name_with_php_version

In meinem Fall war der richtige Code für die Installation von zipArchive

yum install php-pecl-Zip.x86_64

Ich hatte die Lösung von diesem Link . Wie kann ich zipArchive auf PHP 7.2 mit CentOS 7 einfügen?

Durch diese Installation wurde dieses Paket auch irgendwie aktiviert, und die auslösenden Dienste wurden erneut gestartet. Nach Abschluss der Ausführung des obigen Codes war zipArchive nicht mehr vorhanden.

1
antonD

Centos 6

yum install php-pecl-Zip

service httpd restart
0
zzapper

Ich hatte das gleiche Problem und es hatte mit zwei Befehlszeilen gelöst:

Sudo apt install php-Zip

starten Sie dann Ihren Webserver für Apache neu

Sudo service Apache2 restart

0
AboElnouR