PHP升级到7版本后,为什么无法使用mongodb驱动?

2024-04-09

这是我发现的一个奇怪的情况。我一直在一个项目中同时使用 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(使用前将#替换为@)

PHP升级到7版本后,为什么无法使用mongodb驱动? 的相关文章

  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • Linux 桌面快捷方式和安装图标

    我需要添加什么到我的 spec文件来创建桌面快捷方式并在安装过程中为快捷方式分配一个图标 rpm 如果需要脚本 一个示例将非常有帮助 您在 Linux 下使用 desktop 文件作为图标 图标放置的位置取决于您使用的发行版和桌面环境 由于
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG
  • 使用 ObjectId 键和字符串数组定义映射作为 mongoose 模式中的值

    我在为数据库创建 Mongoose 架构时遇到问题 我想创建一个以 objectId 作为键 以字符串值数组作为值的映射 我能得到的最接近的是 var schema new Schema map myId type mongoose Sch
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs

随机推荐

  • R:ggplot背景渐变着色

    我想生成具有渐变颜色的 ggplot 填充绘图面板及其背景 如此处所示 正如您所看到的 渐变背景颜色包含绘图面板及其背景 目前 我只知道所需解决方案的 近似值 library ggplot2 library grid library gri
  • 实施 IEnlistmentNotification 时我应该在哪里执行操作?

    我正在尝试通过实现来创建自定义 资源管理器 I入伍通知 http msdn microsoft com en us library system transactions ienlistmentnotification 28v vs 110
  • Datagrid 与 Gridview [重复]

    这个问题在这里已经有答案了 可能的重复 ASP NET 中 DataGrid 和 GridView 之间的区别 https stackoverflow com questions 4230 the difference between a
  • php中按字母顺序排列的列表组[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个成员表 其中存储有关成员的所有详细信息 包括其姓名 电子邮件 电话等 我希望该名称按字母顺序显示 如示例所示 A Alan Alex
  • 如何更改 Eclipse 模板中使用的 ${user} 变量的值

    我希望 Eclipse 使用从帐户信息中获取的用户真实姓名 而不是硬编码默认的 author 模板 在 Linux 中 但也欢迎 Windows 解决方案 将其输入 Eclipse 配置中的某个位置也是可以接受的 可惜我找不到正确的位置 看
  • Slick 3 从查询中返回自定义案例类

    目前我有这样的事情 val q for department lt departments if department id x employee lt employees if employee departmentId departme
  • 如何防止PayPal重复付款?

    我有一个简单的 立即付款 按钮 通过按钮创建者创建的代码 并添加了一个 自定义 隐藏字段来识别它 我想知道是否可以添加一些额外的隐藏字段来告诉 PayPal 此交易不应进行两次
  • 正则表达式匹配/分组字符串中的重复字符

    我需要一个正则表达式来匹配字符串中的字符组 这是一个示例字符串 qwwwwwwwwweeeeerrtyyyyyqqqqwEErTTT 它应该匹配 比赛组 结果 1 q 2 wwwwwwwww 3 哎呀 4 rr 5 t 6 yyyyy 7
  • 如何在 SP 元数据中配置自定义属性

    我开始知道 在任何 SSO 解决方案中 如果 SP 需要任何其他属性 它可以使用以下方法在其元数据中发布它们 属性消费服务争论 现在可以添加所需的属性 如下所示
  • 如何在 VSTS 构建服务器上为 .Net Core 2 项目编译 Typescript 文件

    我一直在尝试在 VSTS 上的 CI 构建过程中将 TypeScript 文件编译为 JavaScript 文件 一旦生成了 JavaScript 文件 我的 gulp 文件进程就可以将它们处理到 wwwroot 文件夹 该项目在 Visu
  • 在联合上分配泛型类型

    TS 中有没有办法通过联合 分布 泛型类型 type Container a value A type Containers a
  • 使用特定主题标签时检索 Twitter 图片或视频

    我正在寻找为学校活动创建一个页面 基本上我想显示带有特定主题标签的推文的所有图片 如果可能的话还可以显示任何 youtube 或 vimeo 视频 我一直在查看 twitter API 但是我找不到起点 有人知道如何解决这个问题吗 我将不胜
  • 可以使用正则表达式来匹配嵌套模式吗? [复制]

    这个问题在这里已经有答案了 是否可以编写一个正则表达式来匹配出现次数未知的嵌套模式 例如 当外大括号内嵌套未知数量的左大括号时 正则表达式是否可以匹配左大括号和右大括号 例如 public MyMethod if test More Mor
  • ColdFusion UI 标签到 jQuery 的转换

    我正在尝试将一些具有各种 ColdFusion UI 标签的代码转换为 jQuery 我必须制定一个迁移计划 目前这就是我所拥有的 Tag Replacement CFApplet CFCalendar http jqueryui com
  • 选择单个列值并将其存储在变量 oracle sql 中

    我想获取特定列值 a id 并将其存储到变量 v id 中 然后使用该值传递到存储过程中 DECLARE v id a id TYPE BEGIN SELECT id into v id from a where a name test a
  • Java中有没有办法预加1以上?

    在 Java 中 您可以通过以下方式对整数 i 进行后增量 j i 2 我想通过预增量做同样的事情 e g j 2 i This will not work 只需将增量语句放在括号中即可 例如 以下将输出pre 2 int i 0 Syst
  • 如何编写 GraphQL 查询

    我有一个有效的网络 graphql 查询 me on Student profile fullName emailId mobileNumber civilId address city state country zipCode user
  • 使用 OkHttp 时是否可以限制带宽?

    使用 OkHttp 是否可以限制带宽 可能使用网络拦截器 您可以通过两种方式使其发挥作用 手动发送请求并读取流 并在读取时进行节流 添加拦截器 使用OkHttp最好的方法是Interceptor 还有几个简单的步骤 继承Intercepto
  • 为旧版本的 Android 覆盖 Android-L CardView state_pressed

    在最新的 Android SDK 中 我们现在有了新的 CardView 我已经用新版本替换了旧的 CustomCardView 但是当在旧版本的 Android 上运行时 我看到state pressed state focused是显示
  • PHP升级到7版本后,为什么无法使用mongodb驱动?

    这是我发现的一个奇怪的情况 我一直在一个项目中同时使用 PHP 和 MongoDB 并更新了相关软件 升级后 我确实更新了新的conf文件 一切都很好 除了当我尝试使用MongoClient类中 我收到以下致命错误 致命错误 未捕获错误 在