fbpx

MongoDB 教學 - 當 PHP 遇上 MongoDB


PHP + MongoDB - 手牽手心連心mongo-db-alternate-logo

前一篇文章我們介紹過如何在 Linux 下安裝 MongoDB,並且透過 Mongo Client 操作資料庫 (Console Interface),但實際應用上最常搭配 Web 或 WebService 進行實作。接下來我們要介紹如何在 PHP 中操作 MongoDB。這裡一樣介紹 CentOS 的安裝方式,首先透過 EPEL 安裝 PHP Mongo Driver,請執行以下命令安裝:

sudo yum install php-pecl-mongo

啟動 Mongo DB Server

sudo service mongod start

寫一支 PHP 透過 MongoClient 類別來存取資料庫 (官方教學文件使用的 Mongo 類別已經廢止),程式碼如下:

執行結果如下:

上述的動作會直接操作 my_mongodb 資料庫,建立一個名為 users 的 Collection 並且新增一個物件,整個過程不需要事先建立資料庫與 Schema,是不是很簡單快速呢!?執行完成後我們也可以在 /var/lib/mongodb/ 目錄中看見 my_mongodb.0~1 等檔案,表示我們的資料已經建立。

可是過程我們發現一件事情,整個 MongoDB 連線動作竟然沒有驗證!沒錯,預設 MongoDB 啟用確實是大無敵狀態,接下來我們介紹如何啟用帳密連線驗證。

開啟你的 MongoDB 連線驗證

第一步先透過 mongo 命令,在 admin 資料庫中建立欲連線的帳號密碼

mongo

MongoDB 管理者需在 admin 資料庫中建立使用者,因此我們執行以下 Query:

第二步修改 /etc/mongodb.conf 設定檔,開啟「auth = true」啟用驗證程序

sudo vim /etc/mongodb.conf

重新啟用 MongoDB 服務

sudo service mongod restart

接著我們就可以透過 mongo 命令設定 my_mongodb 的連線使用者,如下:

上述我們透過 db.auth 進行登入,由於已經啟用認證,必須登入後才可以操作資料庫。

接著我們將 PHP 修改為以下,加入 MongoDB 連線的帳號與密碼:

如此就可以透過帳密與 MongoDB 正確進行連線囉,介紹到此,下次再見!

參考資料

MongoDB 系列文章