不能在Yii2上绑定MongoDB ['Class'MongoDB \ Driver \ Manager'找不到']

时间:2016-11-23 16:08:07

标签: php mongodb yii2 mamp-pro

我开始使用Yii2,我想将它与Mongodb连接。 所以我试着按照两个网站文件的说明进行操作。

看起来一切都很好,因为我已经对我的普通本地主机做了一个简单的测试,并且它工作正常。

但是当我想在Yii2 Advanced模板上测试时,我无法将Yii2与Mongodb连接。

总是说错误:

PHP Fatal Error 'yii\base\ErrorException' with message 'Class 'MongoDB\Driver\Manager' not found'
in /Applications/MAMP/htdocs/yii/yii2-advanced/vendor/yiisoft/yii2-mongodb/Connection.php:355

这里是我使用的/yii2-advanced/frontend/web/index-test.php上的代码:

<?php
// NOTE: Make sure this file is not accessible when deployed to production
if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
   die('You are not allowed to access this file.');
}

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');

require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');

$mongodb = new MongoClient("mongodb://root:1234567890@localhost:27017/yii2advanced");
$users = $mongodb->yii2advanced->users;
$user = $users->findOne();
print_r($user);

$config = require(__DIR__ . '/../config/test-local.php');

(new yii\web\Application($config))->run();

PS:

  • 我在Mac上使用MAMP PRO。

  • 当我对htdocs / index.php进行测试时,我可以得到$ user的好结果。

  • 我很抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

在我搜索并遵循互联网上的许多指令后, 我发现下面的链接对新安装程序很有用。

https:// docs.mongodb.com/master/tutorial/install-mongodb-on-os-x /?_ ga = 1.258923597.615822406.1480144338

https://bigseadesign.com/web-development/how-to-install-mongo-php-osx-mamp/

https://www.hugethoughts.com/blog/setup-mongodb-mamp-5-minutes/

但我会注意到,当你想在php.ini配置中添加extension = mongodb.so时 我建议你检查并放置你安装MongoDB PHP Driver的正确路径,因为,

当我通过brew

安装“MongoDB PHP Driver”时

(http:// php.net/manual/en/mongodb.installation.homebrew.php)

在Mac Os上,他们将安装此路径:

/usr/local/opt/phpXX-mongodb/

所以你的MAMP上的php.ini必须像这样调用mongo扩展:

extension=/usr/local/opt/php56-mongodb/mongodb.so

顺便说一句。, 请注意,新的“MongoDB PHP驱动程序”是“mongodb.so” 不是“mongo.so”因为mongo.so已经弃用了。