249 votes

Erreur fatale : La classe 'ZipArchive' n'a pas été trouvée dans

J'ai un problème : j'ai installé 'Archive_Zip 0.1.1' sur un serveur Linux, mais lorsque j'essaie d'exécuter le script pour créer le fichier zip, l'erreur fatale suivante se produit

Erreur fatale : Classe ZipArchive introuvable dans ...

où je mets le code

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

mais il ne trouve pas le fichier de classe.

Veuillez m'indiquer la solution. Que dois-je faire pour résoudre le problème ? J'ai également mis php.ini dans le dossier où se trouve script, mais cela ne fonctionne pas.

4voto

kiatng Points 89

Pour Centos 7 et PHP 7.3 sur Remi

Recherchez l'extension zip :

$ yum search php73 | grep zip
php73-php-pecl-zip.x86_64 : A ZIP archive management extension

Le nom de l'extension est php73-php-pecl-zip.x86_64 . Pour l'installer sur un serveur fonctionnant avec une seule version de PHP, supprimez le préfixe php73 :

$ sudo yum --enablerepo=remi-php73 install php-pecl-zip #for server running single PHP7.3 version
$ #sudo yum --enablerepo=remi-php73 install php73-php-pecl-zip # for server running multiple PHP versions

Redémarrer PHP :

$ sudo systemctl restart php-fpm

Vérifier les extensions PHP installées :

$ php -m
[PHP Modules]
apcu
bcmath
bz2
...
zip
zlib

4voto

Jeremy Points 1531

Vous devez également compiler PHP avec le support zip. Le manuel indique ce qui suit :

Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support zip en utilisant l'option de configuration --enable-zip.

Il ne suffit pas d'installer les bonnes extensions sur le serveur. Jetez un coup d'œil au lien des instructions d'installation que Pekka a posté plus tôt. Ma réponse n'est qu'une clarification de la sienne.

3voto

Omar Shabab Points 369

J'ai rencontré ce problème sur GCP lors du déploiement de wordpress dans l'environnement App Engine Standard. Ceci a résolu le problème :

sudo apt-get install php7.2-zip

3voto

Doberon Points 1

Pour moi, le travail, c'est d'abord l'examen

   php -m
   php -version

Installer ensuite l'extension

apt-get update 
apt-get install php7.2-zip
systemctl restart apache2

3voto

PHP 5.2.0 et versions ultérieures

Systèmes Linux

Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support zip en utilisant l'option de configuration --enable-zip.

Fenêtres

Les utilisateurs de Windows doivent activer php_zip.dll dans le php.ini pour pouvoir utiliser ces fonctions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X