CentOS - 在PHP中找不到Mongo类

时间:2012-07-09 10:46:43

标签: php mongodb classnotfound

我在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。这有什么不对吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

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

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

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

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

修改:

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

不不不! :)

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

您可以运行find /* -name "mongo.so"来查看安装程序放置文件的位置,这可能还会告诉您安装了哪个版本的PHP。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

重启httpd!

yum service httpd restart