我最近一直在尝试将我的php应用程序从我在家用机器上安装的xampp上传到服务器。现在代码在家中的xampp上完美运行,并且mongodb驱动程序按预期工作,但是在将其迁移到LAMP服务器之后,f3框架会抛出此错误:
Fatal error: Class 'MongoDB' not found in /nfs/fs0/home/dhu/www/fatfree/lib/db/mongo.php on line 107
Internal Server Error
Fatal error: Class 'MongoDB' not found
在参考文献中,我抬起了它正在抱怨的那条线及其中的一条:
$this->db=new \MongoDB(new $class($dsn,$options?:array()),$dbname);
在堆栈和其他网站上查找解决方案后,他们说要检查安装的mongo等版本,所以我在php端看一下,看看启用了什么,然后返回:
PHP Version 5.6.24-0+deb8u1
mongodb
mongodb support enabled
mongodb version 1.1.8
mongodb stability stable
libmongoc version 1.3.5
libbson version 1.3.5
所以既然mongo已经在php服务器上安装并启用了,我不确定在fatfree框架中第107行到底是什么问题,有没有人有任何想法?任何帮助将不胜感激。
所以在没有找到真正的解决方案后,我会更新,看看能不能得到更多的帮助。
请注意,服务器设置可在此处找到:
和错误:
http://lamp0.cs.stir.ac.uk/~dhu/
它所指的那条线是:
$this->db=new \MongoDB(new $class($dsn,$options?:array()),$dbname);
在MONGODB库中,mongo.php。在查看设置数据库的各种方法并尝试重写设置代码后,似乎没有任何工作....
$manager = new MongoDB\Driver\Manager("mongodb://mydetails:27017");
如果我删除了fatfree框架,这行不会在安装过程中抛出错误,这是令人惊讶的,因为我预计它无法找到MongoDB \ Driver然而它没有问题,它的主要问题似乎只是那一行无脂肪的框架,我不确定为什么......
答案 0 :(得分:3)
您需要在您的Fat-Free Framework的composer.json
文件中添加MongoDB作为依赖项。
只需将MongoDB添加到require依赖项列表中,如果不存在,则创建如下所示。
"require": {
"mongodb/mongodb": "^1.0"
},
然后再次运行composer install
。现在,您可以在代码中引用MongoDB类。
答案 1 :(得分:2)
首先在项目中为mongodb安装autoload类。然后尝试使用以下代码 $ client = new MongoDB \ Client(“mongodb:// localhost:27017”);