我在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。这有什么不对吗?
提前致谢。
答案 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