Запуск PHP Не удается загрузить динамическую библиотеку php_mongo.dll

Я для этого начинаю. Я пытаюсь установить драйвер mongodb на php.

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

Следуйте инструкциям здесь: http://php.net/manual/en/mongo.installation.php#mongo.installation.windows

Я пробовал весь файл php_mongo.dll с VC11 и вставлял папку php/ext. и добавил extension=php_mongo.dll в файл php.ini, но когда я попытался запустить apache в контроллере xampp, я получил ошибку.

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

Я уже проверял версию компилятора VC внутри phpinfo(), и там он указал MSVC11 с architecture: x86.

Было бы неплохо, если бы кто-то мог мне помочь. Благодарю. оцените его.

Ответ 1

Убедитесь, что вы загрузили правильный .DLL для вашей установки PHP. Вероятно, вы используете Apache x86, поэтому скачайте x86 php_mongo.dll. Также, если вы используете PHP как модуль Apache, убедитесь, что вы выбрали thread safe (ts), а также этот тип dll, который соответствует версии PHP, которую вы используете.

Версии должны совпадать, иначе вы получите ошибку запуска php. Найти эти библиотеки Mongo здесь.

Я сделал это, тогда я получил ошибку libsasl.dll не найден. Я просто скопировал libsasl.dll, найденный в моем каталоге установки PHP, в каталог установки Apache (где находится httpd.exe). Затем я перезапустил свой Apache, и это сработало!

Ответ 2

Для тех, кто ищет это в 2017 году, пакет PECL был обновлен и теперь находится по адресу http://pecl.php.net/package/mongodb/1.2.9/windows

и использовать:

extension=php_mongodb.dll 

вместо:

extension=php_mongo.dll

Ответ 3

Если у вас все еще есть проблемы после выполнения вышеизложенного, попробуйте использовать более старые версии драйверов.

Это то, что сработало для меня для моего XAMPP/PHP 5.5 в Windows 8.

Более старые драйверы можно найти здесь: https://s3.amazonaws.com/drivers.mongodb.org/php/index.html

Новые драйверы можно найти здесь: http://pecl.php.net/package/mongo/1.5.5/windows

Вы также можете посетить: https://serverfault.com/questions/563867/mongodb-unable-to-load-driver-on-php

Ответ 4

Скопируйте C:\xampp\php\libsasl.dll в C:\xampp\apache\bin\, перезапустите Apache и наслаждайтесь.

Ответ 5

Это обычно потому, что мы используем 64-битную файловую систему с 64-битным файлом DLL. Но архитектура wamp/xampp может быть 32 бит. Нам нужно использовать на основе архитектуры wamp/xampp, а не архитектуру Windows. Итак, попробуйте найти соответствующую версию DLL файла в архитектуре wamp/xampp. Решение в приведенной ниже ссылке работало как прелесть для меня,

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

Эта ссылка поможет вам найти архитектуру wamp/xampp, fooobar.com/questions/354196/...

Ответ 6

После выполнения всех шагов, указанных в предыдущих комментариях, xampp может не загрузить файл ".dll". Просто убедитесь, что путь к папке файла ".dll" добавлен в переменную среды как путь к системной переменной.

Я столкнулся с одной и той же проблемой, а затем добавив путь к папке с файлом ".dll" в переменную среды как путь к системной переменной, она сработала. Затем он может найти файл.

В конце это был единственный шаг, который останавливал xampp для загрузки файла ".dll", хотя он присутствовал в этой папке. Часто люди пропускают этот шаг, поскольку это не так четко указано.