web-dev-qa-db-fra.com

Impossible de charger la bibliothèque dynamique mongodb.so en utilisant AMPPS sur Ubuntu 14.04

J'essaie d'installer la dépendance mongodb à partir de composer pour mon projet laravel et il nécessite l'installation du pilote mongodb. J'utilise AMPPS 3.6 sur Ubuntu 14.04 qui, par défaut, a l'extension mongodb.so et aussi mongo.so, mais le problème est que je reçois la version de mon php en exécutant: php -v Je reçois le message d'erreur suivant:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/ampps/php-7.0/lib/extensions/ext/mongodb.so' - libssl.so.6: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/ampps/php-7.0/lib/extensions/ext/mongodb.so' - libssl.so.6: cannot open shared object file: No such file or directory in Unknown on line 0

quand je veux voir les modules php par: php -m je ne peux pas voir l'extension mongodb dans la liste des modules.

Comme vous pouvez le voir, il y a quelque chose qui a trait à libssl.so.6 et je pense que cette bibliothèque m’arrête.

FYI: J'utilise AMPPS 3.6 sur Mac OS Sierra et cela fonctionne sans aucun problème.

Voici la liste de mes extensions php activées:

extension=bz2.so
extension=curl.so
extension=gettext.so
extension=intl.so
extension=imap.so
extension=ldap.so
extension=mbstring.so
extension=exif.so      ; Must be after mbstring as it depends on it
extension=mysqli.so
extension=pdo.so
extension=pdo_mysql.so
extension=pdo_sqlite.so
extension=shmop.so
extension=soap.so
extension=sockets.so
extension=sqlite3.so
extension=tidy.so
extension=xsl.so
extension=Gd.so
extension=zlib.so
extension=xmlrpc.so
extension=wddx.so
extension=tokenizer.so
extension=sysvshm.so
extension=sysvsem.so
extension=pcntl.so
extension=openssl.so
extension=mongodb.so
extension=mcrypt.so
extension=iconv.so
extension=ftp.so
extension=dba.so
extension=ctype.so
extension=calendar.so
extension=bcmath.so

Est-ce qu'il y a un moyen de réparer ceci?

Merci d'avance

1

J'ai trouvé la solution à ce problème, je la poste ici pour que d'autres personnes l'utilisent.

Dans la commande ldd, il semble que le binaire cherche dans/lib/x86_64-linux-gnu et non/usr/lib/x86_64-linux-gnu où vous avez trouvé le lien symbolique.

Essayez de les exécuter et voyez si vous obtenez toujours la même erreur:

Sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.6

Sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libssl.so.6

ln -s crée un lien symbolique du binaire libssl.so.1.0.0 au binaire libssl.so.6 dans le répertoire /lib/x86_64-linux-gnu. Les autorisations Sudo sont nécessaires car /lib est un répertoire racine.

1
Mohammad_Hosseini

Ce que j'ai fait:

  1. Depuis le centre de contrôle AMPPS -> PHP -> Icône Paramètres (la roue) -> Cliquez sur l'icône d'extension PHP.
  2. Une fenêtre appelée "Extensions" apparaît.
  3. Il suffit de décocher et de revérifier tout et de cliquer sur "Appliquer". C'est tout! Sans soucis.

Cela rafraîchit probablement automatiquement les liens symboliques ...

J'espère que cela t'aides.

1
Mihai Miculescu