web-dev-qa-db-fra.com

PHP Impossible de charger la bibliothèque dynamique php_mongo.dll au démarrage

Je suis débutant pour ça. J'essaye d'installer le pilote mongodb sur php.

Platform: Windows 8.1 64bit.
PHP 5.5.9
Apache/2.4.7

Suivez les instructions ici: http://php.net/manual/en/mongo.installation.php#mongo.installation.windows

J'ai essayé tous les fichiers php_mongo.dll avec VC11 et les ai placés dans le dossier php/ext. et ajouté extension=php_mongo.dll dans le fichier php.ini, mais lorsque j'ai essayé de démarrer Apache dans le contrôleur xampp, une erreur s'est produite.

    Php Startup: Unable to load dynamic library
  'C:\xampp\php\ext\php_mongo.dll' -%1 is not a valid Win32 application.

J'ai déjà vérifié la version de mon compilateur VC dans phpinfo () et il est indiqué qu'il y a MSVC11 avec architecture: x86

ce serait bien si quelqu'un peut m'aider . Merci. l'apprécie.

12
blitzen12

Assurez-vous de télécharger le fichier .DLL correct pour votre installation php. Il est fort probable que vous utilisiez Apache x86, alors téléchargez un fichier php_mongo.dll x86. De même, si vous exécutez PHP en tant que module Apache, assurez-vous de choisir celui qui est thread-safe (ts). Choisissez aussi ce type de dll qui correspond à la version de php que vous utilisez. Les versions doivent correspondre, sinon vous obtiendrez une erreur de démarrage php. Trouvez ces DLL Mongo ici . Je l'ai fait alors j'ai une erreur libsasl.dll introuvable. J'ai simplement copié le libsasl.dll trouvé dans mon répertoire d'installation php dans le répertoire d'installation Apache (où httpd.exe est trouvé). Puis j'ai redémarré mon Apache. Et ça a marché! 

43
Kimutai

Pour ceux qui recherchent cela en 2017, le paquet PECL a été mis à jour et se trouve maintenant à http://pecl.php.net/package/mongodb/1.2.9/windows

et utilise:

extension=php_mongodb.dll 

au lieu de:

extension=php_mongo.dll
7
bzzhuh

Si vous rencontrez toujours des problèmes après avoir effectué ce qui précède, essayez plutôt les pilotes de versions antérieures.

C’est ce qui a fonctionné pour moi sous XAMPP/PHP 5.5 sous Windows 8.

Les anciens pilotes peuvent être trouvés ici: https://s3.amazonaws.com/drivers.mongodb.org/php/index.html

Les nouveaux pilotes peuvent être trouvés ici: http://pecl.php.net/package/mongo/1.5.5/windows

Vous pouvez également visiter: https://serverfault.com/questions/563867/mongodb-unable-to-load-driver-on-php

4
user3799019

Copiez C:\xampp\php\libsasl.dll dans C:\xampp\Apache\bin\, redémarrez Apache et profitez-en.

3
Stephen Curry

Ceci est normalement dû au fait que nous utilisons un fichier 64 bits DLL pris en charge. Mais l'architecture wamp/xampp pourrait être 32 bits. Nous devons utiliser l’architecture wamp/xampp et non l’architecture Windows. Essayez donc de trouver la version pertinente du fichier DLL dans l’architecture wamp/xampp. La solution dans le lien ci-dessous a fonctionné comme un charme pour moi,

http://grokbase.com/t/gg/mongodb-user/151xpk3fkr/php-5-6-3-with-mongodb-driver-unable-to-load-dynamic-library-not-a-valid- application win32

Ce lien vous aide à trouver l’architecture wamp/xampp, https://stackoverflow.com/a/22454865/4874281

2
manian

Après avoir suivi toutes les étapes mentionnées dans les commentaires précédents, xampp risque de ne pas pouvoir charger le fichier ".dll". Assurez-vous simplement d’ajouter le chemin du dossier du fichier ".dll" à la variable d’environnement en tant que chemin de la variable système.

Je faisais face au même problème, puis après avoir ajouté le chemin du dossier du fichier ".dll" à la variable d'environnement en tant que chemin de variable système, cela a fonctionné. Il est alors capable de trouver le fichier.

À la fin, c’était la seule étape qui consistait à arrêter xampp pour charger le fichier ".dll", même s’il était présent dans ce dossier. Souvent, les gens manquent cette étape car il n’est pas indiqué clairement.

0
Luke P. Issac