Mongodb运行节点和PHP

时间:2012-10-25 03:21:22

标签: php node.js mongodb xampp

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

现在我已经在Node中运行并运行了,我想在运行在Ubuntu上的Xampp服务器上使用PHP测试MongoDB,但是我无法让phpinfo()说明它正在使用mongo。 /> 我已按照步骤here配置并安装驱动程序。我已将mongo.so文件移动到我的xampps扩展,并在php.ini + restarted中添加了相应的行。但是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版本。我再试试。

由于

1 个答案:

答案 0 :(得分: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。我认为这是一个更好的选择。