0

我需要 CentOS 5.4 机器上的 MongoDB PHP 驱动程序。我的 PHP 版本是 5.1.6。我下载了 RPM 并安装了它。这在 /usr/bin 目录中创建了几个文件。我复制了

/usr/bin/mongo

/usr/lib/php/modules

这就是 extension_dir 在执行 phpinfo(); 时显示的内容。

我还添加了

extension=mongo.so

在 /etc/php.ini 中。但是在执行我的 PHP 脚本时,我仍然得到

Mongo class not found.

这里出了什么问题?

此外,我的 phpinfo() 显示 PHP 版本 5.1.6,而从命令行运行 PHP 显示 5.3.3。那有什么问题吗?

提前致谢。

4

3 回答 3

1

你说你的网络服务器和命令行 PHP 报告不同的版本。它们将安装在不同的位置,并且它们的扩展是 API 互不兼容的。

当您安装 php_mongo 扩展时,它可能已经使用命令行 php 来确定安装扩展的目录。

确保您的网络服务器的 php 版本具有正确的 php_mongo,并且它位于正确的扩展目录中。(从返回的 php.ini 中获取目录phpinfo()

我希望您意识到 PHP 5.1 也已经过时多年了。除非您有特定的理由使用那么旧的版本,否则您还应该考虑升级到更新的版本。

编辑:

只需阅读您的评论“我还必须提到 /usr/bin/mongo 是一个二进制可执行文件,但它没有 .so 扩展名。我将它原样复制到 /usr/lib/php/modules”

不不不!:)

这是 mongo 命令行客户端。这不是 PHP 扩展!

您可以运行 afind /* -name "mongo.so"以查看安装程序将文件放在哪里,这可能还会告诉您它安装的 PHP 版本。

于 2012-07-09T11:01:43.203 回答
1

看起来您将 MongoDB 服务器的 RPM 包与安装MongoDB PHP 驱动程序的要求混淆了。PHP 驱动程序提供从您的 PHP 应用程序对服务器的访问,并且不安装任何命令行工具。

于 2012-07-09T11:02:34.037 回答
0

重启httpd!

yum service httpd restart
于 2012-07-09T10:54:23.827 回答