我开始使用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的好结果。
我很抱歉我的英语不好。
答案 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已经弃用了。