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
-
sudo service mongod stop
-
sudo apt-get purge mongodb-org*
-
sudo rm -r /var/log/mongodb
-
sudo rm -r /var/lib/mongodb
9、配置檔案
-
dbpath
-
/var/lib/mongodb
-
logpath
-
/var/log/mongodb
-
config path
-
/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的方式來連線了,而是