3

我按照以下步骤使用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

有任何想法吗?

感谢您

4

2 回答 2

6

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

php -r '回显 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化
。/配置
制作
进行安装
于 2012-02-22T09:50:45.980 回答
0

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

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

于 2012-03-02T11:09:30.687 回答