0

我是 Node.js 和 MongoDB 的新手。我已经成功地让 mongoDB 与 node.js 一起运行,并且能够启动它并将数据存储在集合中。所以服务器已经在 localhost:27017 上运行并且在访问 localhost:28017 时可以工作。

现在我让它在 Node 中运行和工作,我想在我的 Xampp 服务器上用 PHP 测试 MongoDB,但我无法让 phpinfo() 说它正在使用 mongo。
我已按照此处的步骤配置和安装驱动程序。我已将 mongo.so 文件移动到我的 xampps 扩展中,并在 php.ini 中添加了适当的行 + 重新启动。但是 phpinfo() 仍然没有显示它。

我想我对将 mongo-php-driver 文件夹放在哪里感到困惑?这是否也安装到 Xampp 服务器中,如果是,我将它放在哪里?

它已经在使用 node.js 运行和工作,所以只是对为什么它不能正常工作或无法连接感到困惑。

另外,当我在这里时,是否可以让 php 和 node.js 使用在端口 27017 上运行的同一个 mongoDB 服务器?

编辑:在我将 extension_dir 编辑到正确的路径后,我能够让服务器至少给我一条关于该文件的错误消息

extension_lib = "/opt/lampp/lib/php/extensions/no-debug-zts-20090626"

我现在收到此错误

Warning: PHP Startup: Unable to load dynamic library '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/mongo.so'  - /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/mongo.so: wrong ELF class: ELFCLASS64 in Unknown on line 0

我想我需要更改 php.ini 选项以使其正确加载。但似乎我编译了错误的 mongo.so 构建。我再试试。

谢谢

4

1 回答 1

0

据此: http: //montenasoft.com/en/blog/how-install-pecl-php-extension-64bit-linux-while-you-are-using-32bit-xampp

因为xampp是用32位编译的,但是你编译的mongo驱动是64位的。您可能必须使用以下命令编译您的 mongo 驱动程序:

phpize
CFLAGS=-m32 CPPFLAGS=-m32 CCASFLAGS=-m32 ./configure
make
sudo make install

或者只是单独安装apache2、mysql、php。我认为这是一个更好的选择。

于 2012-10-25T04:23:29.997 回答