linux下配置MongoDB 3.2.X + PHP驅(qū)動(dòng)安裝

一铃肯、MongoDB安裝及配置


1.1威恼、下載安裝程序

MongoDB提供了linux平臺(tái)上32位和64位的安裝包竹祷,你可以在官網(wǎng)下載安裝包擅编。
下載地址: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 的可執(zhí)行文件位于 bin 目錄下爱态,所以可以將其添加到 PATH 路徑中:

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

1.2谭贪、創(chuàng)建數(shù)據(jù)庫(kù)目錄

MongoDB的數(shù)據(jù)存儲(chǔ)在/data/db目錄下,但是這個(gè)目錄在安裝過(guò)程不會(huì)自動(dòng)創(chuàng)建锦担,所以你需要手動(dòng)創(chuàng)建data目錄俭识,并在data目錄中創(chuàng)建db目錄。
以下實(shí)例中我們將data目錄創(chuàng)建于根目錄下(/)洞渔。
注意:/data/db 是 MongoDB 默認(rèn)的啟動(dòng)的數(shù)據(jù)庫(kù)路徑(-dbpath)套媚。

mkdir -p /data/db

1.3理盆、運(yùn)行服務(wù)

可以通過(guò)mongo安裝目錄下bin目錄的mongod命令來(lái)啟動(dòng)mongodb服務(wù)。
可以加上--path參數(shù)來(lái)指定服務(wù)啟動(dòng)的端口凑阶,默認(rèn)是27017;加上--dbpath參數(shù)指定數(shù)據(jù)庫(kù)文件所在的目錄衷快,默認(rèn)目錄在/data/db宙橱。

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

1.4、后臺(tái)管理Shell

如果你需要進(jìn)入MongoDB后臺(tái)管理蘸拔,你需要先打開(kāi)mongodb裝目錄的下的bin目錄师郑,然后執(zhí)行mongo命令文件。
MongoDB Shell是MongoDB自帶的交互式Javascript shell,用來(lái)對(duì)MongoDB進(jìn)行操作和管理的交互式環(huán)境调窍。
當(dāng)你進(jìn)入mongoDB后臺(tái)后宝冕,它默認(rèn)會(huì)鏈接到 test 文檔(數(shù)據(jù)庫(kù))。注意邓萨,如果你不是默認(rèn)端口地梨,請(qǐng)?jiān)趍ongo命令后面指定IP地址和端口號(hào)。

mongo 127.0.0.1:25000

1.5缔恳、Web用戶界面

MongoDB 提供了簡(jiǎn)單的 HTTP 用戶界面宝剖。 如果你想啟用該功能,需要在啟動(dòng)的時(shí)候指定參數(shù) --rest 歉甚。

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

MongoDB 的 Web 界面訪問(wèn)端口比服務(wù)的端口多1000万细。
如果你的MongoDB運(yùn)行端口使用默認(rèn)的25000,你可以在端口號(hào)為26000訪問(wèn)web用戶界面纸泄,即地址為:http://localhost:26000赖钞。

1.6、在系統(tǒng)啟動(dòng)時(shí)寫(xiě)入環(huán)境變量

可以用vi打開(kāi)/etc/profile文件聘裁,然后將剛才的環(huán)境變量設(shè)置命令寫(xiě)到文件的尾部雪营。

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

1.7、在后臺(tái)運(yùn)行服務(wù)

使用linux下的 nohub [command] & 命令咧虎,可以讓服務(wù)在后臺(tái)運(yùn)行卓缰,這樣即使關(guān)掉終端服務(wù)也不會(huì)一起關(guān)掉。啟動(dòng)服務(wù)之后如果要關(guān)掉終端砰诵,請(qǐng)使用linux的exit命令征唬,而不要強(qiáng)制退出。
>nohup mongod --port 25000 --dbpath /data/db --rest --auth &
exit

為了避免MongoDB的服務(wù)在終端關(guān)掉后也一起關(guān)掉茁彭,可以使用--fork參數(shù)將服務(wù)設(shè)置為后臺(tái)運(yùn)行模式总寒。

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

可以用--logpath參數(shù)指定日志的輸出路徑,并且在最后面添加上--logappend參數(shù)理肺,以追加的方式創(chuàng)建日志防止把之前的日志刪除了摄闸。

1.8善镰、停止運(yùn)行中的服務(wù)

盡量不要用kill命令殺掉進(jìn)程的方式停止服務(wù),請(qǐng)進(jìn)入Shell年枕,用db.shutdownServer命令來(lái)關(guān)閉服務(wù)炫欺。

use admin
db.shutdownServer()

1.9、加入服務(wù)啟動(dòng)項(xiàng)

打開(kāi)/etc/rc.local文件

vi /etc/rc.local

將啟動(dòng)服務(wù)的命令添加到文件尾部

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

1.10熏兄、使用配置文件啟動(dòng)服務(wù)

如果覺(jué)得在服務(wù)后面帶著大量參數(shù)很不方便品洛,可以使用配置文件來(lái)代替,只需要事先編寫(xiě)好配置文件摩桶,然后在啟動(dòng)服務(wù)的時(shí)候加上--config參數(shù)即可桥状。

配置文件格式

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

然后啟動(dòng)服務(wù),在--config參數(shù)后制定配置文件路徑

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

二硝清、安全性配置


MongoDB默認(rèn)是在非安全性模式下運(yùn)行的辅斟,這樣在生產(chǎn)環(huán)境下非常危險(xiǎn),所以建議還是開(kāi)啟安全性開(kāi)關(guān)芦拿,并分配相應(yīng)的角色權(quán)限士飒。在這里,我們會(huì)創(chuàng)建三個(gè)不同角色的用戶來(lái)管理數(shù)據(jù)庫(kù)蔗崎,分別是admin变汪、sa、dev三個(gè)用戶蚁趁。admin用戶專門(mén)負(fù)責(zé)管理整個(gè)數(shù)據(jù)庫(kù)的用戶權(quán)限裙盾,但不具備業(yè)務(wù)數(shù)據(jù)管理的權(quán)限;sa用戶負(fù)責(zé)服務(wù)的管理他嫡,只有他有權(quán)限關(guān)閉服務(wù)番官;而dev用戶負(fù)責(zé)管理某個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù)里面的數(shù)據(jù),擁有該數(shù)據(jù)庫(kù)的數(shù)據(jù)讀寫(xiě)權(quán)限钢属。

2.1徘熔、添加系統(tǒng)用戶

先創(chuàng)建一個(gè)權(quán)限管理用戶admin。

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

如上所示淆党,系統(tǒng)相關(guān)的權(quán)限配置要在admin庫(kù)上進(jìn)行酷师,MongoDB默認(rèn)是沒(méi)有創(chuàng)建該數(shù)據(jù)庫(kù)的,而我們只要用use命令切換到該數(shù)據(jù)庫(kù)就可以了染乌。接下來(lái)就調(diào)用db.createUser命令來(lái)創(chuàng)建用戶和設(shè)置密碼徙鱼,并為他賦予userAdminAnyDatabase權(quán)限味悄,這個(gè)權(quán)限代表該用戶有權(quán)管理所有用戶權(quán)限設(shè)置顺献,另外這里還在權(quán)限設(shè)置里面指定了該用戶管理的數(shù)據(jù)庫(kù)為admin承绸。

接下來(lái)創(chuàng)建系統(tǒng)服務(wù)管理用戶sa。

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

和admin用戶的創(chuàng)建方法差不多勒庄,只不過(guò)賦予的權(quán)限是hostManager串前,該權(quán)限能夠監(jiān)控服務(wù)的信息瘫里,以及進(jìn)行關(guān)閉服務(wù)等操作。

2.2荡碾、在安全性模式下運(yùn)行

創(chuàng)建完admin用戶后谨读,就可以將服務(wù)切換到安全性模式。要切換到安全性模式坛吁,可以在啟動(dòng)服務(wù)的時(shí)候加上--auth參數(shù)漆腌。

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

然后打開(kāi)Shell,并進(jìn)行權(quán)限認(rèn)證阶冈,用剛才的admin用戶,認(rèn)證命令為db.auth("用戶名", "密碼")塑径。

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

之后就可以在Shell進(jìn)行權(quán)限管理女坑,也就是說(shuō)可以創(chuàng)建和維護(hù)用戶信息了。
注意统舀,由于admin只擁有userAdminAnyDatabase權(quán)限匆骗,所以無(wú)法進(jìn)行一些非管理性質(zhì)的操作。比如admin可以通過(guò)show users命令查詢當(dāng)前MongoDB的用戶信息誉简,但無(wú)法用show collections來(lái)查看數(shù)據(jù)庫(kù)的集合信息碉就,也無(wú)法對(duì)這些集合進(jìn)行任何讀寫(xiě)操作。

2.3闷串、創(chuàng)建業(yè)務(wù)數(shù)據(jù)庫(kù)及其用戶

創(chuàng)建一個(gè)名為app的庫(kù)用于存放業(yè)務(wù)數(shù)據(jù)瓮钥,并為其創(chuàng)建一個(gè)用戶dev來(lái)負(fù)責(zé)管理數(shù)據(jù)庫(kù)里面的數(shù)據(jù)。dev用戶擁有app庫(kù)的讀寫(xiě)權(quán)限烹吵。同樣碉熄,你應(yīng)該先在Shell中用admin進(jìn)行認(rèn)證,然后在調(diào)用db.createUser命令創(chuàng)建用戶肋拔。

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

在這里锈津,要?jiǎng)?chuàng)建dev用戶之前,先切換到app數(shù)據(jù)庫(kù)凉蜂,然后再創(chuàng)建用戶琼梆,并為用戶賦予readWrite權(quán)限,并指定為app數(shù)據(jù)庫(kù)窿吩,該設(shè)定代表用戶擁有讀取app數(shù)據(jù)庫(kù)一般數(shù)據(jù)的權(quán)限茎杂。
權(quán)限設(shè)定完畢之后,再通過(guò)db.auth命令切換到dev用戶纫雁,就可以對(duì)app庫(kù)進(jìn)行數(shù)據(jù)讀寫(xiě)操作了蛉顽。

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

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


如果覺(jué)得使用MongoDB的Shell很麻煩先较,想使用諸如Navicat這樣的數(shù)據(jù)庫(kù)管理工具携冤,那么可以使用Robomongo悼粮。

3.1、下載安裝程序

可以到Robomongo的官網(wǎng)下載曾棕,地址為https://robomongo.org/扣猫。

3.2、鏈接數(shù)據(jù)庫(kù)

打開(kāi)Robomongo翘地,打開(kāi)菜單File->Connect申尤,點(diǎn)擊Create按鈕打開(kāi)Connection Settings界面,切換到Connection選項(xiàng)卡衙耕,填寫(xiě)鏈接名稱(隨便填)昧穿,數(shù)據(jù)庫(kù)地址和端口號(hào),然后點(diǎn)擊Test按鈕測(cè)試連接是否連通橙喘,如果無(wú)法連通时鸵,請(qǐng)檢查一下服務(wù)器的防火墻設(shè)置等可能出現(xiàn)的情況。接下來(lái)厅瞎,如果你的數(shù)據(jù)庫(kù)開(kāi)啟了安全性模式饰潜,那么請(qǐng)切換到Authentication選項(xiàng)卡,勾上Perform authentication和簸,數(shù)據(jù)庫(kù)不用填彭雾,填寫(xiě)你的用戶名、密碼以及認(rèn)證模式(如果設(shè)置的時(shí)候沒(méi)有特別指明的話可以不管锁保,按照默認(rèn)即可)薯酝。所有信息都填寫(xiě)完畢之后點(diǎn)擊保存按鈕保存設(shè)置,回到MongoDB Connections界面爽柒,選擇剛才創(chuàng)建的數(shù)據(jù)庫(kù)連接蜜托,點(diǎn)擊連接按鈕即,如果一切正常就可以看到數(shù)據(jù)庫(kù)的信息和內(nèi)容了霉赡。

四橄务、在PHP下使用MongoDB


如果你想要在PHP下使用MongoDB的話,必須先安裝MongoDB的PHP擴(kuò)展驅(qū)動(dòng)

$ sudo pecl install mongo

使用php的pecl安裝命令必須保證網(wǎng)絡(luò)連接可用以及root權(quán)限穴亏。
安裝手冊(cè)
如果你想通過(guò)源碼來(lái)編譯擴(kuò)展驅(qū)動(dòng)蜂挪。你必須手動(dòng)編譯源碼包,這樣做的好是最新修正的bug包含在源碼包中嗓化。
你可以在Github上下載MongoDB PHP驅(qū)動(dòng)包棠涮。訪問(wèn)github網(wǎng)站然后搜索"mongo php driver"(下載地址:https://github.com/mongodb/mongo-php-driver),下載該源碼包刺覆,然后執(zhí)行以下命令:

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

如果你的php是自己編譯的严肪,則安裝方法如下(假設(shè)是編譯在/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

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

extension=mongo.so

修改完配置之后篇梭,再重啟一下apache服務(wù)就完成擴(kuò)展驅(qū)動(dòng)的安裝了

service httpd restart

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酝枢,隨后出現(xiàn)的幾起案子恬偷,更是在濱河造成了極大的恐慌,老刑警劉巖帘睦,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袍患,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡竣付,警方通過(guò)查閱死者的電腦和手機(jī)诡延,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)古胆,“玉大人肆良,你說(shuō)我怎么就攤上這事〕嘈耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵隧哮,是天一觀的道長(zhǎng)桶良。 經(jīng)常有香客問(wèn)我,道長(zhǎng)沮翔,這世上最難降的妖魔是什么陨帆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮采蚀,結(jié)果婚禮上疲牵,老公的妹妹穿的比我還像新娘。我一直安慰自己榆鼠,他們只是感情好纲爸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著妆够,像睡著了一般识啦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上神妹,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天颓哮,我揣著相機(jī)與錄音,去河邊找鬼鸵荠。 笑死冕茅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姨伤,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼哨坪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了姜挺?” 一聲冷哼從身側(cè)響起齿税,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炊豪,沒(méi)想到半個(gè)月后凌箕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡词渤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年牵舱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缺虐。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芜壁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出高氮,到底是詐尸還是另有隱情慧妄,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布剪芍,位于F島的核電站塞淹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏罪裹。R本人自食惡果不足惜饱普,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望状共。 院中可真熱鬧套耕,春花似錦、人聲如沸峡继。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碾牌。三九已至颠猴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間小染,已是汗流浹背翘瓮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裤翩,地道東北人资盅。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓调榄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親呵扛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子每庆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容