我正在尝试执行此操作:
<?php
// connect
$m = new Mongo();
?>
但是我收到以下错误:
致命错误:在C:\ wamp \ www .....
中找不到“Mongo”类
我已经很好地遵循了MongoDB安装(包括将DLL添加到ext&amp; php.ini),我已经启动了mongod.exe并且WAMP正在运行。
我已经在另一台Windows 7计算机上运行它(Windows 7 Profressional)。这让我很好奇。所以现在我的Windows 7 Enterprise SP1机器具有相同的http.conf
,php.ini
,C:\wamp\bin\mongodb
内容(因此数据库完全相同)和完全相同的批处理文件mongod.exe
作为我的Win7专业机器。
但是,我在Win7 Enterprise SP1机器上所能做的就是通过命令行连接。我的Win7 Professional机器的phpinfo()
包含:
我的Win7 Enterprise SP1机器不包含对MongoDB的任何引用。
我用来启动MongoDB的批处理文件的内容:
"C:\wamp\bin\mongodb\bin\mongod.exe" --logpath "C:\wamp\bin\mongodb\logs\error.log" --logappend --dbpath "C:\wamp\bin\mongodb\data\db" --directoryperdb --service
Net Start "MongoDB"
pause
答案 0 :(得分:6)
问题是PHP驱动程序(php_mongo.dll
)。由于某种原因,Apache / WAMP不喜欢mongo-1.1.4-php5.3vc6ts
版本。我的Windows 7 Professional机器有mongo-1.2.5-php5.3vc9ts
版本。这是两台机器之间的唯一区别。
我最初在Windows 7 Enterprise计算机上使用了mongo-1.2.5-php5.3vc9ts
版本的驱动程序,但在解决问题时已更改为mongo-1.1.4-php5.3vc6ts
版本。因此,原始问题实际上可能只是数据库路径data\db
不存在/无法找到(并且需要在运行/ --dbpath
时使用mongod.exe
指定
答案 1 :(得分:5)
如果php CLI中存在此问题,您应该将extension=mongo.so
添加到/etc/php5/cli/php.ini
文件
答案 2 :(得分:0)
在phpinfo页面中查看PHP二进制文件的确切编译器名称,并尝试重新安装mongo驱动程序是在同一编译器上构建的。
http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows
你现在使用mongo驱动程序在Visual Studio 6上使用Thread-safe。 (vs6ts意味着它)
类似的问题是由编译器问题引起的;
答案 3 :(得分:0)
在Ubuntu上,我使用了this tutorial。安装完成后,回显phpinfo()并检查mongo.ini文件是否位于phpinfo中提到的正确目录中,并“扫描此目录以获取其他.ini文件”