2014年7月16日 星期三

Centos6.4安裝Mongo DB與RockMongo管理工具

下午3:35:00 Posted by Amos , No comments

簡介

本文概述簡單的步驟,教導如何建置Mongo DB及安裝RockMongo(PHP MongoDB Administrator)管理工具,透過管理工具網頁管理MongoDB資料庫。

環境介紹及前置作業

作業系統版本 : Centos 6.4 (64位元)

安裝編輯及wget套件

若於Centos中已有安裝vim (編輯工具)和wget(抓檔案工具)時,可以忽略該步驟
yum -y install wget vim 
yum install gcc  (在安裝PHP PEAR時會用到)

關閉SELinux

編輯 /etc/sysconfig/selinux檔案,將SELINUX=enforcing 改成 SELINUX=disabled,重新開機。
# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 
#     enforcing - SELinux security policy is enforced. 
#     permissive - SELinux prints warnings instead of enforcing. 
#     disabled - No SELinux policy is loaded. 
SELINUX=disabled 
# SELINUXTYPE= can take one of these two values: 
#     targeted - Targeted processes are protected, 
#     mls - Multi Level Security protection. 
SELINUXTYPE=targeted  

開啟防火牆

編輯 /etc/sysconfig/iptables檔案,開啟27017防火牆(Mongo DB的Port Number為27017),設定完成後請重新啟動防火牆。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT 
/etc/init.d/iptables restart 

安裝及設定Apache

輸入 yum install httpd* ,安裝Apacher Server相關套件,並設定於開機時自動啟用,請參考以下步驟進行設定。
yum -y install httpd* 
chkconfig --level 345 httpd on 
chkconfig --list httpd 
為了安全性考量,設定用戶無法瀏覽Apache預設的首頁,請參考以下步驟進行設定(每行前面都加入#符號,共計4行)。
vi /etc/httpd/conf.d/welcome.conf 

#<LocationMatch "^/+$">
    #Options -Indexes
    #ErrorDocument 403 /error/noindex.html
#</LocationMatch>

安裝及設定php

安裝php套件

安裝Apacher Server相關套件,並設定於開機時自動啟用,請參考以下步驟進行設定。
yum -y install php php-devel php-pear
yum -y install libmcrypt* 
#Install the mongo extension on PHP 
pecl install mongo 
安裝mongo for php Driver後,會顯示如下資訊,表示已安裝完成,請於/etc/php.ini檔案中加入extension=mongo.so
Build process completed successfully 
Installing '/usr/lib64/php/modules/mongo.so' 
install ok: channel://pecl.php.net/mongo-1.5.4 
configuration option "php_ini" is not set to php.ini location 
You should add "extension=mongo.so" to php.ini 

設定php.ini檔案

vi /etc/php.ini 
修改為: post_max_size = 800M 
修改為: upload_max_filesize = 800M 
修改為: default_charset="utf8" 
修改為: default_socket_timeout = 300 
修改為: max_execution_time = 1200 
修改為: memory_limit = 1024M 
#Then enable the mongo extension. 
extension=mongo.so 
重新啟動Apache Server。
/etc/init.d/httpd restart

安裝Mongo DB (2.6.3-1)

建立Mongo DB軟體的來源路徑檔案

建立/etc/yum.repos.d/10gen.repo檔案,輸入以下內容並存檔
[10gen] 
name=10gen Repository 
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 
gpgcheck=0 
enabled=1 

安裝 Mongo DB

請輸入以下指令進行安裝
yum install mongo-10gen mongo-10gen-server

將Mongo DB設定為開機時自動啟用

service mongod start 
chkconfig --level 345 mongod on 
chkconfig --list mongod 

設定Mongo DB設定檔

可根據需求自行編輯MongoDB設定檔 (/etc/mongod.conf),資料庫檔案位置預設為 dbpath=/var/lib/mongo
bind_ip=127.0.0.1  可修改監聽的IP
logpath=/var/log/mongo/mongod.log 
port=27017 
dbpath=/var/lib/mongo 

測試Mongo DB

輸入mongo指令,內建有名稱為test資料庫,針對該資料庫進行新刪修
mongo 
> use test 
switched to db test 
> db.foo.find() 
> db.foo.save({a: 1}) 
> db.foo.find() 
{ "_id" : ObjectId("4b8ed53c4f450867bb35a1a9"), "a" : 1 } 
> db.foo.update( {a: 1}, {a: 5}) 
> db.foo.find() 
{ "_id" : ObjectId("4b8ed53c4f450867bb35a1a9"), "a" : 5 } 

利用 root 新增 Database 的管理帳號

# 切換到 test 
use test 
# 先用 root 帳號認證 
db.getSisterDB("admin").auth("root", "root_password"); 
# 新增 jason 帳號 
db.addUser("jason", "jason_password"); 

新增 Database 的管理帳號

# 切換到 test 
use test 
# 先用 jason 帳號認證 
db.auth("jason", "jason_password"); 
# 新增 leo 帳號 
db.addUser("leo", "leo_password"); 

插入新增資料(Insert)

# 插入一筆新資料到 test Collection (相當於傳統 SQL 裡的 Table 角色) 
db.test.insert({ username: "jason", password: "12345678" }) 
# 含當前時間 
db.test.insert({ username: "jason", password: "12345678", created: new Timestamp() }) 

查詢(Query)

# 查詢所有 username 為 jason 的資料 
db.users.find({ username: "jason" }) 
# 查詢單筆 
db.users.find_one({ username: "jason" }) 

修改更新資料(Update)

# 更新 username 為 jason 的 password 欄位 
db.users.update({ username: "jason" }, { $set: { password: "87654321" }}) 
# 以email欄位取代 username 為 jason 的資料(username 和 password 欄位會因此不見,只剩下 email 欄位) 
db.users.update({ username: "jason" }, { email: "jason@gmail.com.test"}) 

刪除資料(Delete)

# 刪除jason使用者資料 
db.users.remove({ username: "jason" }) 
# 根據ObjectId刪除資料 
db.test.remove({'_id':ObjectId('4f29e4860b2e2ecb9910e304')}) 

測試遠端連線至資料庫功能

若無法連線時,請編輯/etc/mongod.conf檔案,將 bind_ip=127.0.0.1 改成 bind_ip=0.0.0.0,並重新啟動MongoDB
mongo SERVER_IP:27017/test

安裝RockMongo - PHP MongoDB Administrator

下載RockMongo

安裝RockMongo

上傳至root目錄並解壓縮rockmongo-1.1.7.zip檔案並拷貝到/var/www/html資料夾(Aapache Web Root DIR)中,請參考以下步驟
unzip rockmongo-1.1.7.zip 
mv /root/rockmongo-1.1.7 /var/www/html 
ln -s rockmongo-1.1.7 rockmongo (建立rockmongo Link檔案) 

設定RockMongo的設定檔

開啟瀏覽器輸入http://IP/rockmongo,會看到如下登入畫面

於UserName欄位中輸入admin,密碼輸入admin,DB Name輸入test資料庫(內建資料庫),點選登入即可進入管理網頁,請參考如下畫面

設定RockMongo的設定檔

若有需要可自行編輯config.php檔案,修改使用者登入帳號及密碼
$MONGO["servers"][$i]["control_users"]["myusername"] = "mypassword"; 
$MONGO["servers"][$i]["control_users"]["iwind"] = "123456";
若發生 PHP Error: Fatal error: Allowed memory size when export a large DB 的問題,請修改/etc/php.ini檔案中的兩個參數值,請參考如下修改
max_execution_time = 1200 
memory_limit = 1024M

0 意見:

張貼留言