在CentOS 6.x 64bit上安装MongoDB 3.2社区版

基本安装步骤

参考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/php

1) 建立repo源文件:linux

sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo

内容以下:nginx

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

2) 更新源,并安装web

sudo yum -y update
sudo yum -y install mongodb-org

3) 配置SELinuxmongodb

sudo vim /etc/selinux/config

SELINUX内容改成:vim

SELINUX=disabled

须要重启系统才能生效!centos

4) 修改防火墙,保证端口能够访问:服务器

sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo /etc/init.d/iptables save

5) 检查目录权限:tcp

确保 /var/lib/mongo 和 /var/log/mongodb 目录中文件是属于mongod:mongod用户和组,若是不是能够手工修改:ide

sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongo

6) 添加到系统服务中:

sudo chkconfig --add mongod
sudo chkconfig mongod on

7) 关闭THP(Transparent Huge Pages)

sudo vim /etc/init.d/disable-transparent-hugepages

内容以下:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          disable-transparent-hugepages
# Required-Start:    $local_fs
# Required-Stop:
# X-Start-Before:    mongod mongodb-mms-automation-agent
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description:       Disable Linux transparent huge pages, to improve
#                    database performance.
### END INIT INFO

case $1 in
  start)
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/transparent_hugepage
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/redhat_transparent_hugepage
    else
      return 0
    fi

    echo 'never' > ${thp_path}/enabled
    echo 'never' > ${thp_path}/defrag

    unset thp_path
    ;;
esac

修改权限并执行

sudo chmod 755 /etc/init.d/disable-transparent-hugepages
sudo /etc/init.d/disable-transparent-hugepages start

修改ulimit设置

ulimit -a

能够看到系统ulimit设置值,须要修改打开文件数和用户最大进程数,须要修改更大:

sudo vim /etc/security/limits.d/99-mongodb-nproc.conf

内容以下:

mongod soft nofile 64000  
mongod hard nofile 64000  
mongod soft nproc 524288 
mongod hard nproc 524288

其中分为soft配置和hard配置,保证soft<=hard;nofile是打开文件数,nproc是进程数,还须要参考/etc/sysctl.conf中的数据。

启动mongodb

sudo service mongod start

尝试登陆:

mongo

若是没有提示任何WARNING信息说明以上配置参数是符合mongodb建议值了,enjoy!

因为本人是在虚拟机上测试就使用了root帐户来安装mongoDB,若是在生产环境,请建立新的账号和组:mongodb。

安装PHP的MongoDB扩展

访问:https://pecl.php.net/package/mongo

wget https://pecl.php.net/get/mongo-1.6.13.tgz
cd mongodb-1.1.9
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

安装完成后,在php.ini中增长extension=mongodb.so并保存,重启php-fpm便可。

phpinfo打印出的扩展结果,证实扩展已经安装成功了。

写测试程序

在写测试程序以前,你首选须要在MongoDB中建立几条测试数据。具体建立方法能够参考我写的《MongoDB命令大全》详细介绍了经常使用的MongoDB的使用方法。

江边望海建立了一个db叫demo,集合叫teams里面有一套记录。

如上图:建立的测试数据

在你的web服务器(个人是nginx)的根目录建立一个php文件,粘贴下面代码:

<?php
$client = new MongoClient('mongodb://mongoadmin:mongoadmin@192.168.8.234:27017');
$db = $client->selectDB('demo');
$collection = $db->selectCollection('teams');
$cursor = $collection->findOne(array('_id' => new MongoId('582d5fa021b8cf1a733d7344')));
var_dump($cursor);

由于,个人mongoDB开启了受权访问。因此,须要在连接的填入用户名和密码。

如上图:能够从Collection中取出数据了。

参考连接:

http://litaook.com/blog/2016/01/22/install-mongodb-on-centos/

相关文章
相关标签/搜索