Lors de l’installation manuelle d’un plugin ou d’un thème WordPress, vous pouvez tomber sur cette erreur : Le message apparaît généralement au moment où WordPress tente de décompresser une archive .zip. En clair : WordPress a bien reçu le fichier, mais PHP ne dispose pas des extensions nécessaires pour l’ouvrir correctement. Dans mon cas, l’erreur… Lire WordPress : corriger l’erreur “Missing zlib extensions”
Source
Lors de l’installation manuelle d’un plugin ou d’un thème WordPress, vous pouvez tomber sur cette erreur :
Unpacking the package…
Abort class-pclzip.php :
Missing zlib extensions
Le message apparaît généralement au moment où WordPress tente de décompresser une archive .zip. En clair : WordPress a bien reçu le fichier, mais PHP ne dispose pas des extensions nécessaires pour l’ouvrir correctement.
Dans mon cas, l’erreur était apparue avec Local, anciennement Local by Flywheel, après une mise à jour. Tous mes sites locaux utilisaient alors PHP 7.4.1, et l’installation manuelle de plugins ZIP échouait. Le problème venait des services PHP fournis par Local, qui devaient être réinstallés.
Voici comment diagnostiquer et corriger proprement l’erreur Missing zlib extensions dans WordPress, que vous utilisiez Local, Docker, MAMP, Valet, DDEV ou un serveur Linux.
WordPress utilise PHP pour télécharger, lire et décompresser les archives ZIP des plugins, thèmes et mises à jour.
Quand l’extension PHP zip est disponible, WordPress peut utiliser les fonctions ZIP natives. Si zip n’est pas disponible, WordPress peut se rabattre sur PclZip, une bibliothèque PHP historique. Mais cette solution de repli dépend notamment de fonctions liées à zlib, comme gzopen().
Si ces fonctions ne sont pas disponibles, WordPress échoue avec :
Abort class-pclzip.php : Missing zlib extensions
Autrement dit, le vrai problème n’est pas le fichier class-pclzip.php. Le problème est l’environnement PHP. Ne modifiez pas les fichiers du core WordPress. Le souci se règle côté PHP, pas dans wp-admin/includes/.
Commencez par vérifier les modules PHP disponibles.
php -m | grep -Ei 'zip|zlib'
Un résultat correct devrait afficher au moins :
zip
zlib
Vous pouvez aussi vérifier directement les fonctions utiles :
php -r 'var_dump(extension_loaded("zip"));'
php -r 'var_dump(extension_loaded("zlib"));'
php -r 'var_dump(function_exists("gzopen"));'
Si zip ou zlib retourne false, vous avez trouvé la cause probable.
Attention toutefois : la commande php teste le PHP en ligne de commande. WordPress, lui, utilise souvent PHP-FPM, Apache module PHP ou le runtime PHP fourni par un outil local. Les deux peuvent être différents. La suite du diagnostic sert justement à éviter ce piège classique.
Dans l’administration WordPress, allez dans :
Outils → Santé du site → Informations → Serveur
Vérifiez les extensions PHP chargées. Si WordPress signale que zip ou zlib manque, l’installation de thèmes et plugins depuis des archives ZIP peut échouer.
WordPress considère zip comme une extension requise pour ces opérations, tandis que zlib sert notamment de solution de repli dans certains cas. Le bon correctif consiste donc à activer au minimum zip, et idéalement les deux extensions.
Si l’erreur apparaît dans Local après une mise à jour, le problème peut venir du service PHP embarqué. C’était le cas avec certaines versions de PHP 7.4.1 fournies par Local, où certains plugins ZIP échouaient alors qu’ils fonctionnaient avec d’autres versions de PHP.
La solution consiste à forcer Local à retélécharger le service PHP concerné.
Sur macOS, quittez Local, puis supprimez les services PHP concernés. Exemple pour PHP 7.4 :
rm -rf ~/Library/Application\ Support/Local/lightning-services/php-7.4*
Relancez ensuite Local, puis créez un site de test utilisant cette version de PHP. Local va retélécharger les services nécessaires. Une fois le service réinstallé, relancez votre vrai site local et réessayez l’installation du plugin ou du thème.
Adaptez évidemment la version dans la commande. Si le site utilise PHP 8.2, 8.3 ou 8.4, ne supprimez pas aveuglément les services PHP 7.4. Le terminal n’est pas rancunier, mais il exécute très bien les mauvaises idées.
Cas Local : changer temporairement de version PHPDans Local, vous pouvez aussi tester une autre version de PHP depuis les réglages du site.
Si l’erreur disparaît avec une autre version de PHP, vous avez probablement un runtime PHP cassé ou incomplet dans Local, pas un problème WordPress.
Cas Ubuntu ou Debian : installer php-zipSur Ubuntu ou Debian, la correction la plus fréquente consiste à installer l’extension ZIP correspondant à votre version de PHP.
sudo apt update
sudo apt install php-zip
Si vous utilisez une version précise de PHP, installez le paquet correspondant. Par exemple :
sudo apt install php8.3-zip
Redémarrez ensuite PHP-FPM ou Apache selon votre stack.
Avec PHP-FPM :
sudo systemctl restart php8.3-fpm
Avec Apache :
sudo systemctl restart apache2
Avec Nginx + PHP-FPM, redémarrer Nginx ne suffit pas toujours. C’est PHP-FPM qui charge les extensions PHP.
Cas Fedora, AlmaLinux ou Rocky LinuxSur les distributions de la famille Red Hat, installez le module ZIP de PHP avec dnf.
sudo dnf install php-zip
Puis redémarrez le service PHP ou Apache selon votre configuration :
sudo systemctl restart php-fpm
ou :
sudo systemctl restart httpd
Vérifiez ensuite dans WordPress, pas seulement en ligne de commande.
Cas Docker : installer zip et zlib dans l’image PHPSi votre WordPress tourne dans Docker avec une image PHP officielle, il faut installer les dépendances système puis compiler ou activer l’extension ZIP.
Exemple pour une image Debian-based :
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libzip-dev \
zlib1g-dev \
&& docker-php-ext-install zip \
&& rm -rf /var/lib/apt/lists/*
Reconstruisez ensuite le conteneur :
docker compose build --no-cache
docker compose up -d
Vérifiez dans le conteneur :
docker compose exec php php -m | grep -Ei 'zip|zlib'
Le nom du service peut être php, wordpress, app ou autre selon votre fichier docker-compose.yml.
Composer peut aussi signaler une extension manquante, par exemple :
requires ext-zlib * -> it is missing from your system
requires ext-zip * -> it is missing from your system
Dans ce cas, Composer utilise le PHP CLI. Corrigez donc l’extension pour la version PHP utilisée par la commande composer.
which php
php -v
php -m | grep -Ei 'zip|zlib'
Sur une machine avec plusieurs versions de PHP, vérifiez que Composer n’utilise pas un PHP différent de celui de votre serveur web. C’est très courant sur macOS, Homebrew, Valet, MAMP et certains environnements Docker.
Cas macOS avec HomebrewAvec PHP installé via Homebrew, vérifiez d’abord la version active :
which php
php -v
php -m | grep -Ei 'zip|zlib'
Si l’installation PHP est cassée, commencez par réinstaller ou relier correctement PHP :
brew reinstall php
Si vous utilisez Laravel Valet, redémarrez Valet après correction :
valet restart
Si vous utilisez Local, ne mélangez pas le PHP Homebrew et le PHP embarqué par Local. Local utilise ses propres services. Réinstaller PHP via Homebrew ne corrige pas forcément le runtime PHP de Local.
Cas WindowsSur Windows, la situation dépend de votre environnement : Local, Laragon, XAMPP, WampServer, Docker Desktop ou PHP installé manuellement.
Vérifiez d’abord le PHP réellement utilisé :
where php
php -v
php -m | findstr /I "zip zlib"
Si vous utilisez XAMPP, WampServer ou Laragon, vérifiez le fichier php.ini chargé par l’environnement, puis assurez-vous que les extensions nécessaires sont activées. Redémarrez ensuite Apache, Nginx ou PHP-FPM selon l’outil.
Ne corrigez pas le mauvais php.ini. Windows adore avoir plusieurs PHP installés. C’est sa petite contribution au folklore local.
Pour connaître le fichier php.ini utilisé par PHP CLI :
php --ini
Pour connaître le php.ini utilisé par WordPress, créez temporairement un fichier phpinfo.php à la racine du site :
<?php
phpinfo();
Ouvrez ensuite ce fichier dans le navigateur, cherchez Loaded Configuration File, zip et zlib, puis supprimez immédiatement le fichier :
rm phpinfo.php
Ne laissez jamais un fichier phpinfo.php accessible publiquement. Il expose beaucoup trop d’informations sur votre environnement.
Si vous êtes bloqué et devez avancer immédiatement, vous pouvez installer le plugin manuellement sans passer par le décompresseur WordPress.
Décompressez le ZIP sur votre machine, puis copiez le dossier dans :
wp-content/plugins/nom-du-plugin/
Vous pouvez ensuite l’activer depuis l’administration WordPress ou avec WP-CLI :
wp plugin activate nom-du-plugin
Cette méthode contourne l’installation ZIP, mais elle ne corrige pas le problème de fond. Si WordPress ne peut pas décompresser les archives, les mises à jour continueront probablement à échouer.
Ce qu’il ne faut pas fairewp-admin/includes/class-pclzip.php.phpinfo.php en ligne.Modifier WordPress core pour corriger cette erreur serait le mauvais combat. C’est un problème d’environnement PHP. Il faut donc corriger PHP, Local, Docker ou le serveur.
Checklist de diagnosticzip ou zlib comme manquant ?php -m affiche-t-il zip et zlib ?php.ini modifié est-il bien celui chargé par le site ?| Environnement | Correction probable |
|---|---|
| Local sur macOS | Réinstaller les services PHP de Local ou changer de version PHP |
| Ubuntu/Debian | Installer php-zip ou php8.3-zip, puis redémarrer PHP-FPM/Apache |
| Fedora/Rocky/AlmaLinux | Installer php-zip, puis redémarrer php-fpm ou httpd |
| Docker | Installer libzip-dev, zlib1g-dev, compiler zip, puis reconstruire l’image |
| Composer | Corriger les extensions du PHP CLI utilisé par Composer |
| MAMP/XAMPP/Laragon | Activer les extensions dans le bon php.ini, puis redémarrer le service |
Missing zlib extensions survient quand WordPress ne peut pas décompresser une archive.class-pclzip.php n’est pas le vrai problème.zip, avec zlib comme fallback dans certains cas.php-zip.En résumé, l’erreur Abort class-pclzip.php : Missing zlib extensions ne se corrige pas dans WordPress, mais dans l’environnement PHP. Activez zip, vérifiez zlib, redémarrez le bon service, puis relancez l’installation du plugin ou du thème. WordPress retrouvera alors sa capacité très sous-estimée à ouvrir un fichier ZIP sans drame.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | WordPress : optimiser les requêtes SQL des plugins | 0 | 9.07 | 06-08-2026 |
| 2 | Linux : corriger l’erreur « cannot open pixbuf loader module file » | 0 | 10.58 | 29-07-2026 |
| 3 | WordPress : valider le code HTML des meta tags et oEmbeds | 0 | 9.41 | 22-07-2026 |
| 4 | Récupérer l’ID d’un article, d’une page ou de n’importe quel objet WordPress | 0 | 9.93 | 12-08-2026 |
| 5 | GIMP : optimiser et exporter ses images pour le Web | 0 | 10.05 | 01-08-2026 |
| 6 | Best Image Optimisation Plugins for WordPress | 0 | 8.2 | 20-08-2026 |
| 7 | Nettoyer et optimiser sa base de données avec WP-CLI | 0 | 12.19 | 31-07-2026 |
| 8 | MySQL ne redémarre plus : résoudre une partition pleine sur /var/lib/mysql | 0 | 9.41 | 27-07-2026 |
| 9 | WordPress Developer | 0 | 6.22 | 13-08-2026 |
| 10 | FFmpeg : optimiser une vidéo MP4 pour la lecture progressive | 0 | 10.16 | 28-07-2026 |