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.

11voto

zzapper Points 610

Centos 6

Ou toute autre version basée sur RHEL

yum install php-pecl-zip

service httpd restart

9voto

temo Points 86

Si vous disposez de WHM, c'est plus facile.

Se connecter à WHM .

Aller à EasyApache 4 (ou la version que vous avez) sous Logiciel tabulation.

Sous Paquets actuellement installés cliquez sur Personnaliser .

Aller à Extensions PHP , dans le type de recherche " fermeture éclair " ( sans guillemets ),

vous devriez voir 3 modules

les vérifier tous,

cliquez plusieurs fois sur le bouton bleu pour terminer le processus.

Cela a fonctionné pour moi. Heureusement, j'ai WHM à ma disposition.

7voto

Santo Boldižar Points 58

Pour PHP 7.x

sudo apt-get install php-zip

Pour PHP 5.x

sudo apt-get install php5.x-zip
// (for example sudo apt-get install php5.6-zip)

Puis redémarrer le serveur Apache

sudo service apache2 restart

5voto

prosti Points 4630

Cela a fonctionné

apt-get install php7.0-zip

et il n'est pas nécessaire de redémarrer php7.0-fpm manuellement.

Déballage php7.0-zip ( 7.0.16-4+deb.sury.org~trusty+1 ) ...
Traitement des déclencheurs pour php7.0-fpm ( 7.0.11-1+deb.sury.org~trusty+1 ) ...
php7.0-fpm arrêt/attente
php7.0-fpm démarrage/exécution, processus 1572
php7.0-fpm arrêt/attente
php7.0-fpm démarrage/exécution, processus 1777
Mise en place php7.0-zip ( 7.0.16-4+deb.sury.org~trusty+1 ) ...
locale : Impossible de définir LC_ALL à la locale par défaut : Aucun fichier ou répertoire de ce type

Création du fichier de configuration /etc/php/7.0/mods-available/zip.ini avec la nouvelle version
Traitement des déclencheurs pour php7.0-fpm ( 7.0.11-1+deb.sury.org~trusty+1 ) ...
php7.0-fpm arrêt/attente
php7.0-fpm Démarrage/exécution, processus 2354
php7.0-fpm arrêt/attente
php7.0-fpm démarrage/exécution, processus 2397

5voto

antonD Points 159

J'ai eu le même problème avec CentOS y cPanel serveur installé. J'ai installé le paquet zipArchive via cPanel et cela n'a pas fonctionné comme prévu. Après avoir essayé de nombreux correctifs suggérés partout, seul le correctif ci-dessous a fonctionné pour moi.

Commencez par trouver le nom du paquet correct à l'aide de la commande suivante

yum search zip |grep -i php

Utilisez ensuite le code ci-dessous.

yum install your_zip_package_name_with_php_version

Dans mon cas, le code correct pour installer zipArchive était le suivant

yum install php-pecl-zip.x86_64

J'ai eu la solution à partir de ce lien. Comment insérer zipArchive sur PHP 7.2 avec CentOS 7 ?

Cette installation a également activé ce paquet et redémarré les services concernés. Après l'exécution du code ci-dessus, le problème de zipArchive a disparu.

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