MongoDB真的很吃内存,不过还是将它弄到了服务器上(如果服务器的内存不够大最好还是不要装吧)。感觉MongoDB比MySQL好多了,记录的方式更接近人脑的思维,极大地突破了行列的限制。Json的数据结构方式也很方便。在连接MongoDB到PHP-fpm的时候遇到了一点问题,因为用的是Nginx不是传统的Apache,有很多组件没有装。需要补装一下。
按照官方的文档(http://docs.mongodb.org/ecosystem/drivers/php/),真的是很简单
先安装
sudo pecl install mongo
然后找到php.ini
加入
extension=mongo.so
然后就大功告成了。
但是实践中发现出现了这样的错误
[root@masterchan ~]# sudo pecl install mongo downloading mongo-1.5.3.tgz ... Starting to download mongo-1.5.3.tgz (191,258 bytes) .........................................done: 191,258 bytes 116 source files, building running: phpize sh: phpize: command not found ERROR: `phpize' failed
phpize 没有找到,上网找了半天,这个是由于php的开发包没有安装导致的(其实我们使用Nginx的,根本不需要安装完整的php包,只需要php-fpm就可以了)。这里需要临时安装php-devel,另外建议还是从GitHub下载源码编译安装比较好,既然把开发包也装了。
首先,安装php-devel这里你会发现它会装一些依赖的组件,将它们记录下来,待会可以卸载掉。
yum install php-devel
然后下载mongodb 的 php驱动,解压,编译驱动并安装,重启一下,就可以在phpinfo里面看到mongodb了
wget https://github.com/mongodb/mongo-php-driver/archive/master.zip unzip master.zip cd mongo-php-driver-master/ phpize ./configure make make test make install service php-fpm restart
然后做一下清洁,把多余的安装包删掉,php-devel其实我们只是借用来生成.so文件的,现在其实是可以删除掉的了
yum erase php yum erase mailcap yum erase automake yum erase autoconf
使用php-fpm其实可以在/etc/php.d/文件夹里面新建一个ini文件然后把
extension=mongo.so
加入进去的,这里可以参照这个文件夹里面的其它设置文件。
安装完成后必须检查权限,特别是检查session文件夹的权限