在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/

相關文章
相關標籤/搜索