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.
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).
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
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é.
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
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.
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.
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 pourphp7.0-fpm
(7.0.11-1+deb.sury.org~trusty+1
) ...php7.0-fpm
arrêter/attendrephp7.0-fpm
démarrer/exécuter, processus 1572php7.0-fpm
arrêter/attendrephp7.0-fpm
démarrage/exécution, processus 1777
Configuration dephp7.0-Zip
(7.0.16-4+deb.sury.org~trusty+1
) ...
locale: impossible de définirLC_ALL
sur la locale par défaut: aucun fichier ni répertoireCréation du fichier de configuration
/etc/php/7.0/mods-available/Zip.ini
avec la nouvelle version
Traitement des déclencheurs pourphp7.0-fpm
(7.0.11-1+deb.sury.org~trusty+1
) ...php7.0-fpm
arrêter/attendrephp7.0-fpm
démarrage/exécution, processus 2354php7.0-fpm
arrêter/attendrephp7.0-fpm
démarrage/exécution, processus 2397
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.
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.
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.
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.
Centos 6
yum install php-pecl-Zip
service httpd restart
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