这是我发现的一个奇怪的情况。我一直在一个项目中同时使用 PHP 和 MongoDB,并更新了相关软件。升级后,我确实更新了新的conf文件,一切都很好——除了当我尝试使用MongoClient
类中,我收到以下致命错误:
致命错误:未捕获错误:在 /srv/http/test.php 中找不到类“MongoClient”
所以我的第一反应是检查我的/etc/php/php.ini
确保正确包含 mongodb.so。我在其他之后找到了它extension
lines:
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
而不是我的发行版的包管理器,情况与上述相同。
以下是情况的简要概述:
- Linux 内核 4.3.3
- PHP 版本 7.0.1
- php-mongodb version 1.1.1
- Yes, 1.1.1 支持php7 https://github.com/mongodb/mongo-php-driver/releases/tag/1.1.1.
- 似乎配置正确,并且 mongodb 已启用并显示在
phpinfo()
.
- 尝试通过安装 mongodb 驱动程序
pecl
和我的发行版的包管理器。
其他可能有用的信息:
- MongoDB 版本 3.2.0
-
mongod
在跑
- 也尝试过重启,没有任何变化。
好吧,我找到了答案。
班级已更改。已经不再是\MongoClient
,现在是\MongoDB\Driver\Manager
我所需要的只是重构。新驱动程序被设计为一个较低级别的驱动程序,用于填充用户空间库的高级功能,因此任何其他升级到 php7 的人,请确保您检查您是否对新驱动程序感到满意,或者用户空间当你这样做时,库就存在了。希望这个问题/答案将来对其他人有所帮助。
下面的评论者 ianaz 发布了这个很好的 MongoDB 用户空间库:http://mongodb.github.io/mongo-php-library/ http://mongodb.github.io/mongo-php-library/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)