這兩天網站轉移到新的服務器後,登陸時出現一個問題,會等待幾分鐘服務器才響應。php
開始覺得是nginx服務器的問題,後面通過排查發現是php一個登錄驗證的函數的問題,每次跑到這個函數就會遲鈍幾分鐘。linux
通過調試,發現也並非進入死循環的緣由,通過好幾個文件的追蹤,原來是鏈接mongoDB的時候出現的問題。nginx
找到config.php配置文件,ping了下配置的ip,發現連上不。原來那臺mongoDB服務器已經不在了。web
通過考慮後,決定在服務器中部署新的mongoDB服務。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也能夠查看
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.1.tgz
[root@localhost soft]# tar -zxvf mongodb-linux-i686-2.0.2-rc2.tgz
[root@localhost mongodb]# mkdir log
[root@localhost mongodb]# mkdir data
[root@localhost mongodb]# cd log
[root@localhost log]# touch mongodb.log
[root@localhost local]# cd mongodb/bin
[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
[root@localhost /]# cd usr/local/mongodb
[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 } >