linux下配置MongoDB 3.2.X + PHP驅動安裝

一、MongoDB安裝及配置


1.1、下載安裝程序

MongoDB提供了linux平臺上32位和64位的安裝包,你可以在官網下載安裝包。
下載地址:http://www.mongodb.org/downloads

下載完安裝包,并解壓 gz(以下演示的是 64 位 Linux上的安裝) 。

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.3.tgz # 下載
tar -zxvf mongodb-linux-x86_64-3.2.3.tgz # 解壓
mv mongodb-linux-x86_64-3.2.3/ /usr/local/mongodb # 將解壓包拷貝到指定目錄

MongoDB 的可執行文件位于 bin 目錄下,所以可以將其添加到 PATH 路徑中:

export PATH=<mongodb-install-directory>/bin:$PATH

1.2、創建數據庫目錄

MongoDB的數據存儲在/data/db目錄下,但是這個目錄在安裝過程不會自動創建,所以你需要手動創建data目錄,并在data目錄中創建db目錄。
以下實例中我們將data目錄創建于根目錄下(/)。
注意:/data/db 是 MongoDB 默認的啟動的數據庫路徑(-dbpath)。

mkdir -p /data/db

1.3、運行服務

可以通過mongo安裝目錄下bin目錄的mongod命令來啟動mongodb服務。
可以加上--path參數來指定服務啟動的端口,默認是27017;加上--dbpath參數指定數據庫文件所在的目錄,默認目錄在/data/db

mongod --port 25000 --dbpath /data/db

1.4、后臺管理Shell

如果你需要進入MongoDB后臺管理,你需要先打開mongodb裝目錄的下的bin目錄,然后執行mongo命令文件。
MongoDB Shell是MongoDB自帶的交互式Javascript shell,用來對MongoDB進行操作和管理的交互式環境。
當你進入mongoDB后臺后,它默認會鏈接到 test 文檔(數據庫)。注意,如果你不是默認端口,請在mongo命令后面指定IP地址和端口號。

mongo 127.0.0.1:25000

1.5、Web用戶界面

MongoDB 提供了簡單的 HTTP 用戶界面。 如果你想啟用該功能,需要在啟動的時候指定參數 --rest

mongod --port 25000 --dbpath /data/db --rest

MongoDB 的 Web 界面訪問端口比服務的端口多1000
如果你的MongoDB運行端口使用默認的25000,你可以在端口號為26000訪問web用戶界面,即地址為:http://localhost:26000

1.6、在系統啟動時寫入環境變量

可以用vi打開/etc/profile文件,然后將剛才的環境變量設置命令寫到文件的尾部。

vi /etc/profile
# /etc/profile #
....
export PATH=<mongodb-install-directory>/bin:$PATH

1.7、在后臺運行服務

使用linux下的 nohub [command] & 命令,可以讓服務在后臺運行,這樣即使關掉終端服務也不會一起關掉。啟動服務之后如果要關掉終端,請使用linux的exit命令,而不要強制退出。
>nohup mongod --port 25000 --dbpath /data/db --rest --auth &
exit

為了避免MongoDB的服務在終端關掉后也一起關掉,可以使用--fork參數將服務設置為后臺運行模式。

mongod --port 25000 --dbpath /data/db -fork --logpath /var/log/mongodb.log --logappend

可以用--logpath參數指定日志的輸出路徑,并且在最后面添加上--logappend參數,以追加的方式創建日志防止把之前的日志刪除了。

1.8、停止運行中的服務

盡量不要用kill命令殺掉進程的方式停止服務,請進入Shell,用db.shutdownServer命令來關閉服務。

use admin
db.shutdownServer()

1.9、加入服務啟動項

打開/etc/rc.local文件

vi /etc/rc.local

將啟動服務的命令添加到文件尾部

#! /bin/sh
……
mongod --port 25000 --dbpath /data/db -fork --logpath /var/log/mongodb.log --logappend

1.10、使用配置文件啟動服務

如果覺得在服務后面帶著大量參數很不方便,可以使用配置文件來代替,只需要事先編寫好配置文件,然后在啟動服務的時候加上--config參數即可。

配置文件格式

port=25000
dbpath=/data/db
logpath=/var/log/mongodb.log
fork=true
logappend=true
shardsvr=truedirectoryperdb=true
auth=true

然后啟動服務,在--config參數后制定配置文件路徑

mongo --config /配置文件目錄/mongo.conf

二、安全性配置


MongoDB默認是在非安全性模式下運行的,這樣在生產環境下非常危險,所以建議還是開啟安全性開關,并分配相應的角色權限。在這里,我們會創建三個不同角色的用戶來管理數據庫,分別是admin、sa、dev三個用戶。admin用戶專門負責管理整個數據庫的用戶權限,但不具備業務數據管理的權限;sa用戶負責服務的管理,只有他有權限關閉服務;而dev用戶負責管理某個業務數據庫里面的數據,擁有該數據庫的數據讀寫權限。

2.1、添加系統用戶

先創建一個權限管理用戶admin。

use admin
db.createUser({
user: "admin",
pwd: "admin"
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

如上所示,系統相關的權限配置要在admin庫上進行,MongoDB默認是沒有創建該數據庫的,而我們只要用use命令切換到該數據庫就可以了。接下來就調用db.createUser命令來創建用戶和設置密碼,并為他賦予userAdminAnyDatabase權限,這個權限代表該用戶有權管理所有用戶權限設置,另外這里還在權限設置里面指定了該用戶管理的數據庫為admin。

接下來創建系統服務管理用戶sa。

use admin
db.createUser({
user: "admin",
pwd: "admin"
roles: [ { role: "hostManager", db: "admin" } ]
})

和admin用戶的創建方法差不多,只不過賦予的權限是hostManager,該權限能夠監控服務的信息,以及進行關閉服務等操作。

2.2、在安全性模式下運行

創建完admin用戶后,就可以將服務切換到安全性模式。要切換到安全性模式,可以在啟動服務的時候加上--auth參數。

mongod --port 25000 --dbpath /data/db --rest --auth

然后打開Shell,并進行權限認證,用剛才的admin用戶,認證命令為db.auth("用戶名", "密碼")

use admin
db.auth("admin", "admin");

之后就可以在Shell進行權限管理,也就是說可以創建和維護用戶信息了。
注意,由于admin只擁有userAdminAnyDatabase權限,所以無法進行一些非管理性質的操作。比如admin可以通過show users命令查詢當前MongoDB的用戶信息,但無法用show collections來查看數據庫的集合信息,也無法對這些集合進行任何讀寫操作。

2.3、創建業務數據庫及其用戶

創建一個名為app的庫用于存放業務數據,并為其創建一個用戶dev來負責管理數據庫里面的數據。dev用戶擁有app庫的讀寫權限。同樣,你應該先在Shell中用admin進行認證,然后在調用db.createUser命令創建用戶。

use admin
db.auth("admin", "admin")
use app
db.createUser({
user: "dev",
pwd: "dev",
roles: [ { role: "readWrite", db: "app" } ]
})

在這里,要創建dev用戶之前,先切換到app數據庫,然后再創建用戶,并為用戶賦予readWrite權限,并指定為app數據庫,該設定代表用戶擁有讀取app數據庫一般數據的權限。
權限設定完畢之后,再通過db.auth命令切換到dev用戶,就可以對app庫進行數據讀寫操作了。

use app
db.auth("dev", "dev")

三、安裝使用客戶端控制管理軟件


如果覺得使用MongoDB的Shell很麻煩,想使用諸如Navicat這樣的數據庫管理工具,那么可以使用Robomongo

3.1、下載安裝程序

可以到Robomongo的官網下載,地址為https://robomongo.org/

3.2、鏈接數據庫

打開Robomongo,打開菜單File->Connect,點擊Create按鈕打開Connection Settings界面,切換到Connection選項卡,填寫鏈接名稱(隨便填),數據庫地址和端口號,然后點擊Test按鈕測試連接是否連通,如果無法連通,請檢查一下服務器的防火墻設置等可能出現的情況。接下來,如果你的數據庫開啟了安全性模式,那么請切換到Authentication選項卡,勾上Perform authentication,數據庫不用填,填寫你的用戶名、密碼以及認證模式(如果設置的時候沒有特別指明的話可以不管,按照默認即可)。所有信息都填寫完畢之后點擊保存按鈕保存設置,回到MongoDB Connections界面,選擇剛才創建的數據庫連接,點擊連接按鈕即,如果一切正常就可以看到數據庫的信息和內容了。

四、在PHP下使用MongoDB


如果你想要在PHP下使用MongoDB的話,必須先安裝MongoDB的PHP擴展驅動

$ sudo pecl install mongo

使用php的pecl安裝命令必須保證網絡連接可用以及root權限。
安裝手冊
如果你想通過源碼來編譯擴展驅動。你必須手動編譯源碼包,這樣做的好是最新修正的bug包含在源碼包中。
你可以在Github上下載MongoDB PHP驅動包。訪問github網站然后搜索"mongo php driver"(下載地址:https://github.com/mongodb/mongo-php-driver),下載該源碼包,然后執行以下命令:

$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ phpize
$ ./configure
$ sudo make install

如果你的php是自己編譯的,則安裝方法如下(假設是編譯在/usr/local/php目錄中):

$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ /usr/local/php/bin/phpize$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ sudo make install

執行以上命令后,你需要修改php.ini文件,在php.ini文件中添加mongo配置,配置如下:

extension=mongo.so

修改完配置之后,再重啟一下apache服務就完成擴展驅動的安裝了

service httpd restart

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容