centos6.7下使PHP支持MongoDB

现在有一台服务器上运行着PHP5.4,因为系统架构的原因导致产生了大量的小文件缓存,造成磁盘读写慢,整个系统性能低,负载居高不下。为了解决这个问题决定用MongoDB代替文件缓存。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

下面是具体的安装过程的记录:

一 安装MongoDB

1 确认系统是32位还是64位

getconf LONG_BIT
64

这个命令可以看当前系统是32位还是64位,如果不幸是32位的,那干脆放弃吧,

2 去mongodb官网下载对应安装包

https://www.mongodb.com/download-center#community

选择“RHEL 6 Linux 64-bit x64”

文件大小是72MB,还是挺大的。为了避免先在PC上下载再上传到服务器上,建议直接在线下载。原始版本是https的,但经测试http也可以下载,而且理论上速度会快一些

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.9.tgz

3 安装

tar zxvf mongodb-linux-x86_64-rhel62-3.2.9.tgz
#解压缩
cp -r mongodb-linux-x86_64-rhel62-3.2.9 /usr/local/mongodb
#复制到指定目录
cd /usr/local/mongodb
mkdir db
mkdir logs
#建立必要的目录
/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/usr/local/mongodb/db/ --logpath=/usr/local/mongodb/logs/mongodb.log --logappend
about to fork child process, waiting until server is ready for connections.
forked process: 15322
child process started successfully, parent exiting
#测试运行,如果看到“child process started successfully, parent exiting”,代表运行成功
echo "/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/usr/local/mongodb/db/ --logpath=/usr/local/mongodb/logs/mongodb.log --logappend
" >> /etc/rc.local
#将这条命令加到/etc/rc.local中去,使MongoDB开机自启动
shutdown -r now
#重启服务器,测试是否能正常开机自启动

……服务器重启后……

4 确认

ps aux | grep mongodb | grep -v grep
root     15322  0.4  1.2 397384  6356 ?        Sl   Aug25  36:30 /usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/usr/local/mongodb/db/ --logpath=/usr/local/mongodb/logs/mongodb.log --logappend
#如果执行结果类似是上面这样的就说明已经成功启动了。

 


安装php的mongodb扩展

1 下载

https://github.com/mongodb/mongo-php-driver-legacy(PHP的mongo驱动的项目主页)

https://github.com/mongodb/mongo-php-driver-legacy/archive/master.zip(PHP的mongo驱动的下载地址)

wget https://github.com/mongodb/mongo-php-driver-legacy/archive/master.zip
unzip master.zip
cd mongo-php-driver-legacy-master
phpize
./configure
make && make install
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20100525/

然后修改php.ini,增加刚刚创建好的驱动扩展:

vi /usr/local/lib/php.ini
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.so

5 确认

php -i | grep mongo
mongo
mongo.allow_empty_keys => 0 => 0
mongo.chunk_size => 261120 => 261120
mongo.cmd => $ => $
mongo.default_host => localhost => localhost
mongo.default_port => 27017 => 27017
mongo.is_master_interval => 15 => 15
mongo.long_as_object => 0 => 0
mongo.native_long => 1 => 1
mongo.ping_interval => 5 => 5

如果看到类似上面的结果,就说明php的mongo驱动扩展已经装好了。如果是用于WEB服务的PHP有可能还需要重启php-fpm才能生效。

 评论
  习近平主席是两个一百年全国各族人民共同的奋斗目标的带路人,以习近平新时代中国特色社会主义思想为指导,已是当今历史潮流!顺着潮流走,人生有作为!赖泽善

  中国的一切胜利和发展,归根结底首先是领袖的英明领导丶坚强领导!赖泽善

  文化革命全国人民要誓死保卫保卫毛主席!保卫党中央!现在全国人民要维护党中央的绝对权威和习主席核心地位!中国人最感恩和热爱的就是人民领袖!今日的中国,全国上下都在为进入习近平新时代中国特色社会主义思想为指导而欢欣鼓舞。赖泽善

  毛泽东时代丶习近平新时代,都是精神焕发振奋人心斗志昂扬的时代!赖泽善

  奋斗不如等待到尘埃落定,等待不如听其自然,任何人都得听天由命。赖泽善

  中国人明天更美好!赖泽善

  柳暗花明又一村。赖泽善
 发表评论
姓   名: