linux下部署monogoDB服務(以及安裝php mogodb擴展)

這兩天網站轉移到新的服務器後,登陸時出現一個問題,會等待幾分鐘服務器才響應。php

開始覺得是nginx服務器的問題,後面通過排查發現是php一個登錄驗證的函數的問題,每次跑到這個函數就會遲鈍幾分鐘。linux

通過調試,發現也並非進入死循環的緣由,通過好幾個文件的追蹤,原來是鏈接mongoDB的時候出現的問題。nginx

找到config.php配置文件,ping了下配置的ip,發現連上不。原來那臺mongoDB服務器已經不在了。web

通過考慮後,決定在服務器中部署新的mongoDB服務。mongodb

安裝php mongoDB擴展


1.首先下載php的mongodb擴展shell

從http://pecl.php.net/package/mongo這個網址下載mongodb的擴展源碼包數據庫

wget http://pecl.php.net/get/mongo-1.4.5.tgz

2.解壓安裝包瀏覽器

tar zxf mongo-1.4.5.tgz

3.進入解壓目錄,運行phpize進行安裝準備服務器

 cd mongo-1.4.5

 /usr/local/php/bin/phpize

4.安裝編譯app

  上述命令運行完後,在目錄下就生成了configure文件

  使用./configure命令進行安裝配置,而後使用make && make install進行編譯安裝,命令以下:

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

  5.編輯php.ini增長下述一行添加mongodb擴展

extension=mongo.so

  重啓web服務器和php-fpm,而後php輸入phpinfo(),打開瀏覽器。看到mongodb的內容就說明安裝成功。

或者命令行php -m也能夠查看

安裝mongoDB服務端

下載版本:2.0.2-rc2
下載連接: 
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.1.tgz 
首先在linux中解壓縮安裝程序
解壓:
[root@localhost soft]# tar -zxvf mongodb-linux-i686-2.0.2-rc2.tgz
咱們把 mongodb-linux-i686-2.0.2-rc2重命名爲 mongodb
咱們把在mongodb目錄下新建一個data目錄存放數據、新建一個log目錄存放日誌,而後在該目錄下新建一個日誌文件,例如咱們命名爲mongodb.log
[root@localhost mongodb]# mkdir log  
[root@localhost mongodb]# mkdir data  
[root@localhost mongodb]# cd log  
[root@localhost log]# touch mongodb.log
而後定位到mongodb/bin目錄中
[root@localhost local]# cd mongodb/bin  
使用mongod命令創建一個mongodb數據庫連接,端口號設置爲27017(也是默認端口),數據庫的路徑爲/mongodb/data,日誌路徑爲/mongodb/log/mongodb.log
啓動命令 :  
[root@localhost mongodb]# ./bin/mongod -port 27017 --dbpath data/ --logpath log/mongodb.log  --fork
all output going to: log/mongodb.log 
[root@localhost mongodb]# ps -ef | grep momgod   (查看是否啓動成功)

經常使用的啓動參數:

   --dbpath:指定存儲數據的文件夾

   --logpath:指定日誌存儲文件

   --logappend:日誌以增長方式產生

   --port指定端口,若是不寫的話,默認是27017

   --fork表明後臺運行(注意:若是不加後臺啓動參數fork,啓動的這個頁面不能關閉,使用命令鏈接數據庫時要另打開一個窗口)

中止命令:

# ./mongod -shutdown -dbpath=/usr/local/mongodb/data

經過配置文件啓動

經過配置文件來配置Mongodb
首先在mongodb目錄下新建一個文件,文件名任意,在這裏我取名爲:mongodb.conf

[root@localhost mongodb]# vi mongodb.conf 

而後在配置文件中添加配置信息

port=27017 
dbpath=data/ 
logpath=log/mongodb.log 
logappend=true 

解釋說明:
port=10001【表明端口號,若是不指定則默認爲 27017 】
dbpath=data/ 【數據庫路徑】
logpath=log/mongodb.log 【日誌路徑】
logappend=true 【日誌文件自動累加,而不是覆蓋】
啓動Mongodb服務

[root@localhost mongodb]# ./bin/mongod -f mongodb.conf 
all output going to: log/mongodb.log
備註:若是啓動失敗

非法關閉服務器,會產生mongod.lock文件
再次強調個人linux發行版本是Fedora
關於mongodb Error: couldnt connect to server 127.0.0.1 shell/mongo.js:84 - kaizhu_QIN - kaizhu_Qin

這時候將mongod.lock文件刪除就能解決問題。
執行刪除mongod.lock文件:rm -rf mongod.lock

Ps:若是須要將mongod加入到服務器開機自動啓動,執行一下命令:
chkconfig --levels 235 mongod on

使用客戶端來鏈接該數據庫
從新開啓一個終端,而後切換到mongodb目錄下:
[root@localhost /]# cd usr/local/mongodb  
而後使用bin/mongo命令來鏈接該數據庫
[root@localhost mongodb]# ./bin/mongo localhost:27017
MongoDB shell version: 2.0.2-rc2  
connecting to: localhost:27017/test  
>  
bye  
往數據庫中插入值
connecting to: localhost:27017/test  
> db.foo.save({a:1})  
從數據庫中查詢
> db.foo.find()  
{ "_id" : ObjectId("4ee66eb440ef7803a9873d2d"), "a" : 1 }  
>  
經過瀏覽器訪問
在瀏覽器地址欄輸入: http://localhost:27017/ 而後回車訪問
能夠看到以下提示:You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
而後根據提示把端口號加上1000訪問 http://localhost:11001/ 、
就可以訪問到Monodb的服務端web頁面
相關文章
相關標籤/搜索