1. 程式人生 > >php使用 mongodb的過程

php使用 mongodb的過程

專案中要使用mongodb,記錄下採坑記錄。

先說下本人的環境(安裝不講環境就是耍流氓)

環境:

     PHP版本:7.0

     系統環境:ubantu14.04

一、mongodb的安裝。

     按照網上的方法,安裝了mongodb3.4,具體安裝教程,由於之前是寫在新浪的。忘了原文出處,此處請原作者諒解

1、匯入包管理系統使用的公鑰

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

2、為MongoDB建立一個列表檔案

Ubuntu 12.04

echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Ubuntu 14.04

echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Ubuntu 16.04

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

3、重新載入本地包資料庫

sudo apt-get update

4、安裝最新的穩定版本的MongoDB

sudo apt-get install -y mongodb-org

5、啟動MongoDB

sudo service mongod start

6、關閉MongoDB

sudo service mongod stop

7、重啟MongoDB

sudo service mongod restart

8、解除安裝MongoDB

  1. sudo service mongod stop

  2. sudo apt-get purge mongodb-org*

  3. sudo rm -r /var/log/mongodb

  4. sudo rm -r /var/lib/mongodb

9、配置檔案

  1. dbpath

  2. /var/lib/mongodb

  3. logpath

  4. /var/log/mongodb

  5. config path

  6. /var/etc/mongo.conf

這裡有個小坑:就是安裝完後使用mongo命令時,提示如下:

2018-08-02T17:14:00.218+0800 I STORAGE  [initandlisten] 
2018-08-02T17:14:00.218+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-08-02T17:14:00.218+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-08-02T17:14:00.522+0800 I CONTROL  [initandlisten] 
2018-08-02T17:14:00.522+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-08-02T17:14:00.522+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-08-02T17:14:00.522+0800 I CONTROL  [initandlisten] 
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] 
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] 
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-08-02T17:14:00.523+0800 I CONTROL  [initandlisten] 
 

這個問題是由於沒有初始化造成的,按照以下步驟解決:

二、php的擴充套件的安裝

 這裡有坑,按照網上的安裝了最新的mongodb擴充套件後,在php-fpm中的php.ini裡添加了擴充套件後,

phpinfo也看到了mongodb擴充套件,提示如下:

PHP warning

include(MongoClient.php): failed to open stream: No such file or directory

但是按照目前網上的都使用不了,後來才發現是新的mongdb使用方式已經改變:

具體使用參考如下:

也就是不能再使用 MongoClient的方式來連線了,而是