1
votes

Impossible de charger la bibliothèque dynamique 'zip.so' sur Centos 7.6.1810 à l'aide du repo remi-php72

Je rencontre des problèmes pour mettre à jour le CMS d'octobre:

Échec de la mise à jour "Classe 'ZipArchive' introuvable" à la ligne 51 de /var/www/html/jdd/htdocs/vendor/october/rain/src/Filesystem/Zip.php

Et si je fais php -m, j'obtiens l'avertissement suivant:

Avertissement PHP: Démarrage PHP: Impossible de charger la bibliothèque dynamique 'zip.so' (essayé: /usr/lib64/php/modules/zip.so (/usr/lib64/php/modules/zip.so: symbole non défini: zip_libzip_version) , /usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type)) dans Inconnu à la ligne 0

Chose étrange, dans mon dossier /etc/php.d/, le fichier zip.ini contient la ligne: extension = zip.so. alors que tous les autres fichiers .ini de /php.d n'incluent pas l'extension ".so" (par exemple: pour le fichier json.ini, la ligne se lit comme suit: extension = json). J'ai essayé de supprimer le ".so" de l'extension zip.ini = ligne, mais cela ne fonctionnera toujours pas.

Pour autant que je sache, le système exécute uniquement des exécutables x86_64 (comment puis-je vérifier cela avec une certitude absolue - tous les binaires sont affichés sous la forme .x86_64 ou .noarch?).

J'ai essayé d'autres versions de php: -php 5.4 installe zip.so très bien (il se charge correctement), sauf qu'en octobre, il faut au moins php 7.0. -php 7.0 à 7.3 installent tous zip.so, mais l'extension ne se charge toujours pas.

Quelqu'un peut-il aider?


1 commentaires

D'accord, j'ai compris que l'extension de fichier du nom de l'objet partagé PHP est maintenant laissée de côté avec PHP 7.3, donc aucune erreur dans mes fichiers php.d / .ini. Toujours coincé avec le problème d'un zip.so installé, mais non reconnu.


3 Réponses :


0
votes

Veuillez vérifier que vous utilisez la dernière version de libzip5 1.5.1 du référentiel remi-safe (qui est obligatoire et activé par défaut)


2 commentaires

Remi, j'ai essayé un autre référentiel avec succès. Je dois avoir en quelque sorte désactivé le repo ou manqué de l'activer. Je ne sais pas si c'était le problème ou non, - Cela aurait-il pu créer le problème?


Je vérifierai lors de la prochaine installation de PHP si c'était la raison, mais pour l'instant, je vais continuer avec ce que j'ai réussi à installer. Merci!



1
votes

J'ai le même problème et j'ai trouvé la solution suivante:

  1. Recherchez les modules php installés:

yum list installed | grep php*

  1. Essayez de localiser le module php-zip installé:

rpm -ql php72-php-pecl-zip

  1. Vous verrez quelque chose comme ceci:
/etc/opt/remi/php72/php.d/40-zip.ini
/opt/remi/php72/root/usr/lib64/php/modules/zip.so # <----
/opt/remi/php72/root/usr/share/doc/pecl/zip
  1. Ensuite, créez simplement un lien symbolique vers ce fichier dans le répertoire où php recherche les modules par défaut:

ln -s /opt/remi/php72/root/usr/lib64/php/modules/zip.so /usr/lib64/php/modules/zip.so

Après ces étapes, j'ai enfin vu l'extension zip dans la sortie php -m et ZipArchive peux maintenant utiliser la classe ZipArchive .

Vous devriez également probablement redémarrer votre service httpd.


1 commentaires

Désolé, mais ce n'est pas la bonne solution. Voir blog.remirepo.net/pages/English-FAQ#scl (donc php-pecl-zip vs php72-php-pecl-zip)



1
votes

1 - Téléchargez manuellement la dernière bibliothèque ZIP pecl sur https://pecl.php.net/package/zip

2 - Installez-le avec pecl dans le fichier téléchargé

extension=zip

3 Activez le zip sur php.ini

sudo pecl install zip-1.19.1.tgz


0 commentaires