我正在尝试使用 PHP 和 WAMP 设置 MongoDB。我之前安装了 WAMP 64 位,但我发现 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,为了确保我的 CLI PHP 与我的 WAMP 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
最后,“where php”向我显示命令行正在从我的 WAMP 安装中运行 PHP:C:\Program Files (x86)\wamp\bin\php\php5.3.8\php.exe
1) 知道为什么 CLI "php -i" 会显示 Mongo 已加载,但 phpinfo() 没有?
2) 我猜我的“new Mongo()”调用失败的原因与 phpinfo() 没有显示 Mongo 已加载的原因相同,但我不确定从哪里开始调试 Mongo 加载问题。我检查了 wamp/logs/apache_error.log,它在启动时没有显示错误。
提前致谢。