web-dev-qa-db-fra.com

Erreur fatale: la classe 'ZipArchive' ne figure pas dans

J'ai un problème à installer "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 est générée

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. 

S'il vous plaît dites-moi la solution. Que dois-je faire pour résoudre le problème? J'ai également placé le fichier php.ini dans le dossier contenant le script, mais cela ne fonctionne pas.

127
Parag Chaure

Pour que la classe ZipArchive soit présente, PHP doit disposer de l’extension Zip .

Voir cette page pour les instructions d’installation (Linux et Windows).

158
Pekka 웃

Sur Amazon ec2 avec Ubuntu + nginx + php7, j'ai eu les mêmes problèmes, résolus en utilisant: 

Sudo apt-get install php7.0-Zip

72
star18bit

Sur le bureau Ubuntu, je devais le faire.

Sudo apt-get install php5.6-Zip

Cela a installé la bibliothèque mais j'ai toujours eu la même erreur, donc j'ai dû redémarrer Apache avec:

Sudo service Apache2 restart

et cela a fonctionné. 

28
Mubashar Abbas

Je ne le vois pas ici, alors j'aimerais ajouter que sous Debian/Ubuntu, vous devrez peut-être activer l'extension après l'installation du paquet relatif. Alors:

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

Tout d’abord, la solution pour serveur distant:

Si vous utilisez cpanel, l’extension Zip peut être installée mais pas activée. Vous devez l'activer. Dans ce cas, vous devez accéder à cpanel> dans la section logiciels> cliquez sur PHP version. Ensuite, trouvez Zip et vérifiez-le. Maintenant, économisez.

Vous devriez voir comme l'image. enter image description here

Rafraîchir la page. L'erreur devrait disparaître. 

Remarque: Si vous ne trouvez pas, contactez le fournisseur de serveur. Ils vont installer pour vous.

6
Kalyan Halder Raaz

Cela a fonctionné

apt-get install php7.0-Zip

et pas besoin 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êter/attendre
php7.0-fpm démarrer/exécuter, processus 1572
php7.0-fpm arrêter/attendre
php7.0-fpm démarrage/exécution, processus 1777
Configuration de php7.0-Zip (7.0.16-4+deb.sury.org~trusty+1) ...
locale: impossible de définir LC_ALL sur la locale par défaut: aucun fichier ni répertoire 

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êter/attendre
php7.0-fpm démarrage/exécution, processus 2354
php7.0-fpm arrêter/attendre
php7.0-fpm démarrage/exécution, processus 2397 

5
prosti

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

Pour 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 simplement les extensions correctes sur le serveur. Jetez un coup d’œil au lien d’installation que Pekka a publié plus tôt. Ma réponse est juste une clarification de sa.

3
Jeremy

PHP 5.2.0 et ultérieur

Systèmes Linux

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

Les fenêtres

Les utilisateurs Windows doivent activer php_Zip.dll à l'intérieur du fichier php.ini pour pouvoir utiliser ces fonctions.

3
Vineesh Kalarickal

Si vous avez la disponibilité de WHM, c'est plus facile.

Connectez-vous àWHM.

Allez dans EasyApache 4 (ou quelle que soit la version que vous avez) sous Logiciel onglet.

Sous Packages actuellement installés cliquez sur Personnaliser .

Aller à PHP Extensions , dans le type de recherche " Zip " (sans guillemets),

vous devriez voir 3 modules

vérifiez tous,

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

Cela a fonctionné pour moi. Heureusement, j'ai WHM disponible.

2
temo

J'ai eu le même problème avec le serveur installé CentOS et cPanel. J'ai installé le paquet zipArchive via cPanel et je n’ai pas fonctionné comme prévu . Après avoir essayé avec autant de corrections suggérées, chaque élément ci-dessous a fonctionné pour moi.

Recherchez d'abord le nom du bon paquet avec la commande ci-dessous

yum search Zip |grep -i php

Ensuite, utilisez le code ci-dessous.

yum install your_Zip_package_name_with_php_version

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

yum install php-pecl-Zip.x86_64

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

Et cette installation a en quelque sorte activé ce package également et il a également redémarré les services concernés et, une fois l'exécution de l'exécution du problème de code zipArchive ci-dessus terminée.

1
antonD

Centos 6

yum install php-pecl-Zip

service httpd restart
0
zzapper

J'ai eu le même problème et il avait résolu en utilisant deux lignes de commande:

Sudo apt install php-Zip

puis redémarrez votre serveur Web, pour Apache

Sudo service Apache2 restart

0
AboElnouR