那么我发现这是一个奇怪的情况。 我一直在一个项目上使用PHP和MongoDB,并更新了相关的软件。 升级之后,我确实更新了新的conf文件,一切都很好 – 除了当我尝试使用MongoClient
类时,我得到以下致命错误:
致命错误:未捕获错误:类'MongoClient'在/srv/http/test.php中找不到
所以我的第一本能是检查我的/etc/php/php.ini
,确保mongodb.so被正确包含。 我发现它在其他的extension
线之后:
extension=mcrypt.so extension=zip.so extension=mongodb.so ; <--- here it is
通过检查,我加载了一个快速的phpinfo()
脚本来检查我是否使用了正确的php.ini
文件,并确认我是。 不仅如此,mongodb驱动程序也似乎正确加载!
Loaded Configuration File /etc/php/php.ini . . . mongodb support enabled mongodb version 1.1.1 mongodb stability stable libmongoc version 1.3.1-dev libbson version 1.3.0
所以我重新启动httpd并再次尝试。 没有骰子,仍然找不到MongoClient
类。 所以我试图从pecl
而不是我的发行版的包pipe理器来安装它,情况和上面描述的一样。
所以这里是一个简短的情况:
phpinfo()
。 pecl
和我的发行版软件包pipe理器来安装mongodb驱动程序。 其他信息可能是有用的:
mongod
正在运行 那么我找到了答案。
这个班已经改变了。 它不再是\MongoClient
,现在是\MongoDB\Driver\Manager
我需要的只是一个重构。 新的驱动程序被设计成一个低层次的驱动程序,用于填充用户空间库的高级功能,所以任何人升级到php7,确保你检查你会适应新的驱动程序,或用户空间图书馆存在,当你这样做。 希望这个问题/答案在未来有助于他人。
下面的评论者ianaz已经发布了这个用于MongoDB的好用户空间库: http ://mongodb.github.io/mongo-php-library/