php - 将 PHP 更新到 5.3 后无法加载 mongo.so 扩展

标签 php mongodb

我在 Debian Lenny x64 上安装了 PHP 5.2 和 MongoDB,一切都很好。

将 PHP 更新到 5.3 (dotdeb) 后,我无法让 MongoDB 工作,总是报错

Fatal error: Class 'Mongo' not found (...)

其他一切正常,所有默认模块都正常工作。

我的 php.ini:

extension_dir = "/usr/lib/php5/20090626"
extension=mongo.so

Mongo.so 与上面写的位置相同。 但是当我运行 php -m在控制台检查加载的模块,“mongo”没有列出。

我无法使用 dl('mongo.so')在运行时加载模块,因为这个函数在 PHP 5.3 中被弃用了。

也许我应该以某种方式重新编译 mongo,我只是不知道该怎么做,因为我不太擅长 *nix 命令。

感谢您的帮助!

更新 也可能值得一提的是,在我的 mongo.so 在 /usr/lib/php5/20060613 之前我手动将其复制到 "/usr/lib/php5/20090626"因为似乎在更新我的 PHP 后,所有模块都位于那里。

最佳答案

扩展模块 api 在 php5.2 和 php5.3 之间发生了变化。当 php 尝试加载扩展模块时,双方都必须“呈现”一个标识 api 版本的 api 魔术键。如果这些数字不匹配,则不会加载/激活模块。

再次尝试 sudo pecl install mongo 以获得适合您的新 php 版本的扩展模块。

关于php - 将 PHP 更新到 5.3 后无法加载 mongo.so 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052157/

相关文章:

php - 错误 1045 : access denied for user 'root' @'localhost' using password NO. .. 通过扩展类连接时,其他

php - 您可以从 vanilla PHP 中塞进多少类型推断?

php - 从 PHP 中提取的目录列表中的 jQuery Prop 父复选框

php - 在 PHP 中撤销 Google 访问 token

mongodb - mongodb写锁行为

mongodb - 具有自由许可的可嵌入开源键值存储

更新后的MongoDB字段顺序和文档位置更改

php - 为什么 PHP 正则表达式中有 {m} 的非贪婪版本?

mongodb - Mongodb 尝试创建可恢复的备份

JavaScript 堆内存不足 - 插入 mongodb 时出错