Fatal error: Class 'ZipArchive' ne trouve pas dans
J'ai un problème que j'ai installer "Archive_Zip 0.1.1" sur le serveur Linux, mais lorsque j'essaie d'exécuter le script pour créer le fichier zip il donne l'erreur fatale
Fatal error: Class
ZipArchive
ne trouve pas dans ...
où j'ai mis 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.
Merci de m'indiquer la solution. Que dois-je faire pour résoudre le problème?
J'ai aussi mis php.ini
fichier dans le dossier où script, mais il ne fonctionne pas.
- Sur Ubuntu utiliser
sudo apt-get install php7.2-zip
- cela a fonctionné pour moi
- qui donnent
E: Unable to locate package php7.2-zip E: Couldn't find any package by regex 'php7.2-zip'
utiliser ubuntu 14.04 avec php 7.2
Vous devez vous connecter pour publier un commentaire.
Pour la
ZipArchive
de la classe d'être présent, PHP doit avoir la extension zip installé.Voir cette page pour les instructions d'installation (Linux et Windows).
In order to use these functions you must compile PHP with zip support by using the --enable-zip configure option.
sudo apt-get install php7.0-zip
sudo apt-get install php7.0-zip
. Ensuite, éditez le fichier/etc/php/7.0/cli/php.ini
(Dans la "Dynamique des Extensions, ajoutez la ligneextension=zip.so
). Cela devrait résoudredocker-php-ext-install zip
sudo apt-get install php7.0-zip
vous devrez redémarrer le serveur apachesudo systemctl restart apache2
apt-get install -y libzip-dev
etpecl install zip
, après laquelle l'extensionzip.so
doit être activé dans lephp.ini
de fichiers et redémarré apache. Cependant, lors de l'utilisation de docker, @DavidRiccitelli a la réponse correcte.Sur Amazon ec2 avec Ubuntu + nginx + php7, j'ai eu les mêmes problèmes, résolus à l'aide de:
sudo apt-get install php7.0-zip
sudo apt-get install php7.1-zip
pour Ubuntu/php7.1php 7.2
et dit toujoursE: Unable to locate package php7.2-zip E: Couldn't find any package by regex 'php7.2-zip'
Sur le bureau ubuntu, j'ai eu à faire.
Installé la bibliothèque, mais j'ai toujours continué à se faire la même erreur, donc j'ai dû redémarrer apache à l'aide de:
et cela a fonctionné.
Je ne suis pas le voir ici, donc je tiens à ajouter que sur Debian/Ubuntu, vous devrez peut - permettre l'extension après l'installation de la relative paquet. Donc:
php7.0-zip
pour PHP 7.Tout d'abord, La solution de serveur distant:
Si vous utilisez cpanel vous pouvez avoir extension zip installé mais pas activé. Vous avez besoin de l'activité. Dans ce cas, vous devez aller à cpanel > à l'intérieur du logiciel de l'article > cliquez sur la version de PHP. Ensuite, trouver zip et de le vérifier. Enregistrez maintenant.
Vous devriez voir à l'image.
Actualiser la page. L'erreur devrait disparaître.
Remarque: Si vous n'avez pas trouvé, contactez le fournisseur du serveur. Ils vont installer pour vous.
Cela a fonctionné
et pas besoin de redémarrer
php7.0-fpm
manuellement.Vous aussi vous devez compiler PHP avec le support des archives zip. Le manuel indique les éléments suivants:
Il ne suffit pas de simplement installer les extensions correctes sur le serveur. Regardez les instructions d'installation lien Pekka posté plus tôt. Ma réponse est juste une clarification de ses.
Si vous avez WHM disponibles, il est plus facile.
Connectez-vous à WHM.
Aller à EasyApache 4 (ou quelle que soit la version u) sous Logiciel onglet.
En vertu de Paquets Actuellement Installés cliquez sur Personnaliser.
Aller à Extensions PHP, à la recherche de type "zip" (sans les guillemets),
vous devriez voir 3 modules
de vérifier tous les,
cliquez sur le bouton bleu à quelques reprises pour terminer le processus.
Cela a fonctionné pour moi.
Heureusement, j'ai WHM disponibles.
PHP 5.2.0 et plus tard
Les systèmes Linux
Afin de pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support des archives zip en utilisant l'option --enable-zip option de configuration.
Windows
Les utilisateurs de Windows doivent activer php_zip.dll à l'intérieur de php.ini pour utiliser ces fonctions.
J'ai eu le même problème avec CentOS et cPanel serveur installé. J'ai installé zipArchive package via cPanel et n'a pas fonctionné comme prévu.
Après avoir essayé avec de nombreuses corrections suggérées chacun et partout juste ci-dessous a fonctionné pour moi.
D'abord trouver le nom pour le bon package avec la commande ci-dessous
Ensuite utiliser le code ci-dessous.
Dans mon cas, de corriger le code pour installer zipArchive était
J'ai eu la solution à partir de ce lien.
Comment puis-je inslatt zipArchive sur PHP 7.2 avec CentOS 7?
Et cette installation en quelque sorte permis que le paquet de trop et il a aussi redémarré l'exécution des services et après l'achèvement de l'exécution du code ci-dessus zipArchive problème a disparu.
Centos 6
J'ai eu le même problème et il avait résolu à l'aide de deux lignes de commande:
sudo apt install php-zip
puis redémarrez votre serveur web, Apache
sudo service apache2 restart
J'ai été confronté à ce problème sur les BPC tandis que le déploiement de wordpress dans le App Engine Standard de l'environnement. Cette résolu :
1) Vous devez
require
votre fichier avecZipArchive
fichier.2) Ou de l'utilisation
__autoload
méthode de classe.En PHP 5, c'est une belle méthode __autoload().
http://www.php.net/manual/en/language.oop5.autoload.php