将PHP更新到5.3后无法获取mongo.so扩展

Rom*_*man 6 php mongodb

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

将PHP更新到5.3(dotdeb)之后我无法使MongoDB工作,我总是收到错误

Fatal error: Class 'Mongo' not found (...)
Run Code Online (Sandbox Code Playgroud)

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

我的php.ini:

extension_dir = "/usr/lib/php5/20090626"
extension=mongo.so
Run Code Online (Sandbox Code Playgroud)

Mongo.so与上面所写的位置相同.但是当我php -m在控制台中运行以检查加载的模块时,那里没有列出"mongo".

我不能dl('mongo.so')在运行时使用加载模块,因为在PHP 5.3中不推荐使用此函数.

可能是我应该以某种方式重新编译mongo,我只是不知道该怎么做,因为我在*nix命令中不是很好.

谢谢你的帮助!

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

Vol*_*erK 6

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

再试sudo pecl install mongo一次,以获得适合您的新PHP版本的扩展模块.

  • 截至目前,这似乎不适用于PHP 5.4 (3认同)