首页 > 技术文章 > exception 'yii\base\ErrorException' with message 'Class 'MongoClient' not found'

big-snow 2016-07-13 15:12 原文

问题描述:

本来项目运行的好好的,搬了一次办公室(电脑主机一起搬的),第二天的时候就登录不了了。

php版本和扩展没有改变,且没有修改任何配置,我尝试重启php5-fpm 服务,又重启nginx服务,再登录还是老样子。

报错如下:

exception 'yii\base\ErrorException' with message 'Class 'MongoClient' not found' in /home/user/YiiProject/src/vendor/yiisoft/yii2-mongodb/Connection.php:247
Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}

 

解决方法:
$ sudo vi /etc/php5/mods-available/mongo.ini 

在mongo.ini里面检查 extension = mongo.so 是否有被注释掉,我的是被注释掉了,因此不能正常加载mongo扩展,放开就可以了。然后再重启php服务就OK了。

这个方法不一定适用于其他情况。

假如扩展没有被注释还是报错,可以尝试以下思路:

 

解决思路:

查看php已安装的扩展:

php5 -m    //查看php 扩展,检查是否有mongo模块。如果没有则需要安装mongo扩展
php -i | grep 'Configuration File'      //查找php配置文件
Configuration File (php.ini) Path
=> /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini
sudo vi /etc/php5/cli/php.ini    //打开php配置文件,检查是否有 extension=mongo.so

当修改了php配置文件,需要重启php服务才有效果。

sudo service php5-fpm restart 

 

推荐阅读