2

PHPとWAMPを使用してMongoDBをセットアップしようとしています。以前にWAMP64ビットをインストールしましたが、PHPドライバーが動作しないことがわかったので、それをアンインストールして32ビットをインストールしました。ここからPHPドライバーをダウンロードしました:http : //downloads.mongodb.org/mongo-latest-php5.3vc9ts.zip、dllをextに入れ、拡張機能をphp.iniに追加しました。

WAMPを起動してもエラーは発生しませんが、phpinfo()にMongoが表示されません。また、次のような単純なものを試してみると、

$m = new Mongo(); // connect

このエラーが発生します:

( ! ) Fatal error: Class 'Mongo' not found in C:\development\uswom\btf\test\mongo.php on line 3

私のphpinfoはこの情報を示しています:

Build Date  Aug 23 2011 11:47:20
Compiler    MSVC9 (Visual C++ 2008)
Architecture    x86 
PHP API     20090626
PHP Extension   20090626
Zend Extension  220090626
Zend Extension Build    API220090626,TS,VC9
PHP Extension Build     API20090626,TS,VC9 

コマンドラインからphp-iを実行すると、mongoがロードされていることがわかります。

mongo

MongoDB Support => enabled
Version => 1.2.7-

Directive => Local Value => Master Value
mongo.allow_empty_keys => 0 => 0
mongo.allow_persistent => 1 => 1
mongo.auto_reconnect => 1 => 1
mongo.chunk_size => 262144 => 262144
mongo.cmd => $ => $
mongo.default_host => localhost => localhost
mongo.default_port => 27017 => 27017
mongo.long_as_object => 0 => 0
mongo.native_long => 0 => 0
mongo.no_id => 0 => 0
mongo.utf8 => 1 => 1

WAMPは私がインストールした唯一のphpであり、CLIPHPがWAMPphpinfoと一致していることを確認するために、詳細を確認しました。

Build Date => Aug 23 2011 11:47:20
Compiler => MSVC9 (Visual C++ 2008)
Architecture => x86
PHP API => 20090626
PHP Extension => 20090626
Zend Extension => 220090626
Zend Extension Build => API220090626,TS,VC9
PHP Extension Build => API20090626,TS,VC9

最後に、「where php」は、コマンドラインがWAMPインストールからPHPを実行していることを示しています:C:\ Program Files(x86)\ wamp \ bin \ php \ php5.3.8 \ php.exe

1)CLI "php -i"でMongoがロードされていると表示されるのに、phpinfo()では表示されない理由はありますか?

2)phpinfo()がMongoがロードされていることを表示しないのと同じ理由で、「新しいMongo()」呼び出しが失敗していると推測していますが、Mongoロードの問題のデバッグをどこから開始すればよいかわかりません。wamp / logs / apache_error.logを確認しましたが、起動時にエラーは表示されません。

前もって感謝します。

4

2 に答える 2

4

あなたの質問は明確ではありません: mongophpinfo() ページでその拡張機能を確認できますか?

php.iniそうでない場合は、多くの場合、CLI はApache (phpinfo())と同じものを使用しないことを知っておいてください。

php.ini編集する適切なものを探します。通常は という名前php-cli.iniです。php.ini と同じフォルダーにある可能性があります。中にあることもあるc:\Windowsので、よく見てください。

phpinfo() ページで「parsed php ini files」を使用すると、編集する正しいファイルにアクセスできます。

また、WAMP はインスタンスごとに多数の PHP エンジンを処理できるため、インストールされている PHP のバージョンが 1 つだけであることを確認してください。

お役に立てれば!

update : 念のため、構成を変更するたびに Apache サービスを再起動します。

于 2012-01-11T16:19:21.290 に答える
2

WAMP と Mongo php 拡張機能でも同様の問題がありました。

Apache エラー ログで、/ext で mongo .dll が検出されていることに気付きましたが、窒息していました。いくつかのトラブルシューティングの後、WAMP の 64 ビット バージョンがあることに気付きましたが、mongo php .dll は Github から 32 ビットとしてのみ配布されています。

そこで、64 ビットの代わりに 32 ビットのディストリビューションを使用して WAMP を再インストールしました (64 ビットの .dll として mongo 拡張機能をビルドすることもできたと思います)。

次に、mongo php のスレッド セーフ バージョンをインストールし、phpInfo の概要にロードして、関数にアクセスできるようになりました。これで解決しました。

于 2012-05-05T20:51:55.330 に答える