私はこれの初心者です。 PHPにmongodbドライバーをインストールしようとしています。
Platform: Windows 8.1 64bit.
PHP 5.5.9
Apache/2.4.7
ここの指示に従いました: http://php.net/manual/en/mongo.installation.php#mongo.installation.windows
私はVC11ですべてのphp_mongo.dllファイルを試し、php/extフォルダーに入れました。と追加されましたextension=php_mongo.dll
php.iniファイルにありますが、xamppコントローラーでApacheを起動しようとすると、エラーが発生しました。
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
。
誰かが私を助けてくれるといいのですが。ありがとう。感謝します。
PHPインストールの正しい.DLLをダウンロードしてください。Apachex86を実行している可能性が高いので、x86をダウンロードしてください_php_mongo.dll
_。また、実行中の場合PHP Apacheモジュールとして、thread safe (ts)
を選択し、PHPと一致するこのタイプのdll
も選択してください。実行しているバージョン。
バージョンが一致している必要があります。一致していない場合、php起動エラーが発生します。これらのMongo DLLを見つける here 。
これを行ったところ、エラー_libsasl.dll
_が見つかりませんでした。 PHPインストールディレクトリにある_libsasl.dll
_をApache
インストールディレクトリ(_httpd.exe
_がある場所)にコピーしました。次に、Apacheを再起動しました。そしてそれはうまくいった!
2017年にこれをググる人のために、PECLパッケージが更新され、現在 http://pecl.php.net/package/mongodb/1.2.9/windows にあります。
そして使用:
extension=php_mongodb.dll
の代わりに:
extension=php_mongo.dll
コピーC:\xampp\php\libsasl.dll
からC:\xampp\Apache\bin\
、Apache
を再起動してお楽しみください。
上記を行っても問題が解決しない場合は、代わりに古いバージョンのドライバーを試してください。
それが私のXAMPP/PHP 5.5 on 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
これは通常、64ビットでサポートされているDLLファイルの64ビットシステムを使用しているためです。しかし、wamp/xamppアーキテクチャは32ビットである可能性があります。 Windowsアーキテクチャではなく、wamp/xamppアーキテクチャに基づいて使用する必要があります。したがって、wamp/xamppアーキテクチャに関連するDLLファイルのバージョンを見つけてください。以下のリンクの解決策は私にとって魅力のように機能しました、
このリンクは、wamp/xamppアーキテクチャを見つけるのに役立ちます https://stackoverflow.com/a/22454865/4874281
以前のコメントで述べたすべての手順を実行した後、xamppは「.dll」ファイルをロードできない場合があります。 「.dll」ファイルのフォルダのパスをシステム変数のパスとして環境変数に追加してください。
私は同じ問題に直面していましたが、「。dll」ファイルのフォルダーのパスをシステム変数パスとして環境変数に追加した後、それは機能しました。その後、ファイルを見つけることができます。
最後に、それはxamppを停止して「.dll」ファイルをロードする唯一の手順でしたが、そのフォルダーに存在していました。明確に指摘されていないため、多くの場合、このステップを逃します。