我正在尝试连接到Mongolab数据库服务器,但是我收到此错误:
Fatal error: Class 'MongoClient' not found in /home/viviane/public_html/sk/zizi/head.php on line 33
我怀疑它与PHP Mongo驱动程序有关,但我不知道如何。如果我尝试连接到远程mongodb服务器
$uri = "mongodb://dzyasser:dzyasser@ds049624.mongolab.com:49624/serverdb";
$options = array("connectTimeoutMS" => 30000);
$connection = new MongoClient($uri, $options );
那么,当我尝试连接到远程Mongodb服务器(Mongolab)时,为什么还会出现此错误?
答案 0 :(得分:1)
看起来你的系统中没有MongoDB PHP扩展。
尝试安装MongoDB PHP扩展以解决MongoClient类的问题。这就是我在OS X中设置MongoDB PHP扩展的方法。
从PECL获取MongoDB扩展
$ sudo pecl install mongodb
制作php.ini.default
的副本$ sudo cp /etc/php.ini.default /etc/php.ini
将此行放在php.ini而不是保存
延长= mongodb.so
使用此命令检查安装
php --re mongodb
或者创建包含phpinfo()函数的简单php文档
如果您在撰写扩展程序时遇到问题,请阅读此post。
答案 1 :(得分:0)
我认为,Mongo驱动程序已安装并加载。
如果是这样,由于错误消息显示无法找到MongoClient
类,因此可能是由脚本中使用的命名空间引起的。如果是这样,请尝试
$connection = new \MongoClient($uri, $options );
答案 2 :(得分:0)
无论您是本地连接还是远程连接,似乎PHP都要求在您的服务器上运行mongo DB服务。所以安装就像这样:
a)安装mongodb服务
$ sudo apt-get install -y mongodb
b)如果缺少php驱动程序,请添加它们:
$ sudo apt-get install php5-dev php5-cli php-pear -y
$ sudo pecl install mongo
c)然后打开你的php.ini文件,并在其中添加扩展名" extension = mongo.so":
$ sudo vi /etc/php5/apache2/php.ini
> extension=mongo.so
d)然后重启apache
$ sudo service apache2 restart
免责声明:此示例是在安装了Apache Web服务和PHP5的Ubuntu 14.04 LTS上尝试的。如果您的安装不同,请按照相同的方法,但发出适当的命令。如果您无法访问SSH或sudoer权限,请联系可以帮助您执行此操作的人。