在 Ubuntu ( Linux ) 上使用 Lamp 安装 Mongodb

Posted

技术标签:

【中文标题】在 Ubuntu ( Linux ) 上使用 Lamp 安装 Mongodb【英文标题】:Installing Mongodb with Lamp On Ubuntu ( Linux ) 【发布时间】:2012-03-12 14:51:23 【问题描述】:

我按照以下步骤使用lampp安装mongo的php驱动。

http://abstract2paradox.wordpress.com/2012/01/26/adding-mongo-db-driver-to-xampp/

当我启动lampp时,它会出现以下错误

警告:PHP 启动:无法加载动态库 '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/mongo.so' - /opt/lampp/lib/ php/extensions/no-debug-non-zts-20090626/mongo.so:错误的 ELF 类:第 0 行未知中的 ELFCLASS64

有什么想法吗?

谢谢你

【问题讨论】:

【参考方案1】:

这意味着你的 PHP 在 32 位模式下编译,但 mongo 扩展为 64 位模式。我相信 Apple 编译的 PHP 也处于 32 位模式,您可以通过以下方式验证:

php -r 'echo PHP_INT_MAX, "\n";'

如果显示的话

9223372036854775807
您使用的是 64 位平台。

现在,在您的情况下,您需要确保使用 32 位架构编译 MongoDB 扩展。来自http://artur.ejsmont.org/blog/content/how-to-build-mongodb-pecl-extension-in-32bit-for-php-52-on-macosx-snow-leaopard,我相信您可以这样做:

pecl 下载 mongo tar -xvzf mongo-1.2.7.tgz cd mongo-1.2.7 CFLAGS="-m32" php化 。/配置 制作 进行安装

【讨论】:

-thanx,但我使用的是 linux ( Ubuntu ) – Imran Omar Bukhsh 运行 php -r 'echo PHP_INT_MAX, "\n";'给我 2147483647 我需要在最后输入“make install”吗? 嗯,是的,你需要make install 问题依然存在【参考方案2】:

问题如上面 Derick 所述。虽然问题得到解决的方法是下载 32 位版本的 ubuntu 操作系统并使用 vmware 在我的电脑上将其作为虚拟机运行。后来按照page 上的“手动安装部分”进行 php 驱动程序安装,一切正常。如页面所述,从 github 获取 php 驱动程序。

后来我将文件 mongo.so 从我的虚拟机上运行的 php 文件扩展目录复制到我的父操作系统,现在一切正常!

【讨论】:

以上是关于在 Ubuntu ( Linux ) 上使用 Lamp 安装 Mongodb的主要内容,如果未能解决你的问题,请参考以下文章

linux之路常用的命令

linux下的so,o,lo,a,la文件有啥区别

在 ubuntu 上使用 linux 源码编译模块

ubuntu文件类型没有颜色区分,如何解决

如何在linux ubuntu中使用android手机程序

在 Ubuntu ( Linux ) 上使用 Lamp 安装 Mongodb