問題描述:
本來項目運行的好好的,搬了一次辦公室(電腦主機一起搬的),第二天的時候就登錄不了了。
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