Install MongoDB PHP Driver on Ubuntu Without Pear/pecl

สวัสดีครับ วันนี้ผมมีของจะมาปล่อยอีกแล้ว แบบว่าอยากจะเอา MongoDB มาใช้งานกับ PHP ครับ ซึ่งขั้นตอนการลง MongoDB ไม่ซับซ้อนสามารถทำตามวิธีการลง MongoDB บน Ubuntu ซึ่งเป็น document ของ MongoDB ได้เลย ไว้ผมจะแปลมาให้เป็นลำดับถัดไปนะครับ เมื่อลง MongoDB เสร็จเรียบร้อยแล้ว ไม่ได้หมายความว่า PHP จะสามารถคุยกับ MongoDB รู้เรื่องนะครับ เราต้องทำการเพิ่มความสามารถให้กับ PHP ก่อน นั่นก็คือการลง MongoDB PHP Driver ลงไป เพื่อให้คุยกันรู้เรื่อง และสามารถเรียกใช้งาน MongoDB จาก PHP ได้เลย

วิธีการทำไม่ซับซ้อนครับ จริงๆผมลองมาหลายวิธีแล้ว แต่มาสำเร็จกับวิธีนี้นี่แหละ ฮาๆ
1. install PHP tools ที่จำเป็น

sudo apt-get install php5-dev

2. download MongoDB PHP Driver ลงมา ซึ่งมันจะมาอยู่ใน path /home/user/ ครับ (สำหรับผมนะ)

sudo wget http://github.com/mongodb/mongo-php-driver/zipball/1.0.6

3. unzip และ install ซึ่งไฟล์ที่เรา download มาจากข้อ 2 นั้นจะเป็นไฟล์ zip ให้เราลอง ls ดูว่าชื่อไฟล์ชื่ออะไรนะครับ สำหรับผมชื่อ ‘1.0.6’ ก็ให้เรา unzip ไฟล์ชื่อนั้นไป

sudo unzip 1.0.6            (ขึ้นอยู่กับชื่อไฟล์ที่ download มา)
cd mongodb-mongo-php-driver-a54a5f7/         (unzip มาแล้วให้เข้าไปใน directory นั้น)
sudo phpize
sudo ./configure
sudo make install

4.  ตอนนี้เราต้อง copy ไฟล์ mongo.so ไปไว้ที่ path php extension ครับ

php -i | grep extension_dir           (เพื่อหาว่า path ของ php extension อยู่ที่ไหน)
sudo cp modules/mongo.so /usr/lib/php5/20090626              (path ด้านหลัง ขึ้นอยู่กับว่า php extension path ของแต่ละเครื่องอยู่ที่ไหน)

5. สร้างไฟล์ php mongo config ขึ้นมาครับ ด้วย nano (หรือ vi ก็แล้วแต่ถนัดครับ)

sudo nano /etc/php5/conf.d/mongo.ini

จากนั้นให้ copy paste ข้อความด้านล่างลงไป กดเซฟแล้วออกมาครับ

extension=mongo.so
[mongo] ; If the driver should reconnect to mongo
mongo.auto_reconnect = true
; Whether to allow persistent connections
mongo.allow_persistent = On
; Maximum number of persistent connections (-1 means unlimited)
mongo.max_persistent = -1
; Maximum number of links (persistent and non-persistent, -1 means unlimited)
mongo.max_connections = -1
; Default host for mongo connection
mongo.default_host = localhost
; Default port for mongo database
mongo.default_port = 42
; When saving files to the database, size of chunks to split them into
mongo.chunk_size = 1024
; Specify an alternate character to $ to use for special db functions ($set, $push, etc.)
mongo.cmd = “$”

6. สุดท้ายครับ ให้ restart apache ครับ

sudo /etc/init.d/apache2 restart

ลองสร้างไฟล์ php ขึ้นมา แล้ว phpinfo() ดูครับ ถ้าคุณเห็นส่วนที่เป็น MongoDB แบบนี้ แปลว่าสำเร็จแล้วครับ ถ้าไม่เป็นก็ตัวใครตัวมัน >,<

ได้ไม่ได้ยังไงบอกผมด้วยนะครับ

คาดหวังเป็นอย่างยิ่งว่าบทความนี้จะมีประโยชน์กับทุกคนนะครับ

credit : http://blog.justin.kelly.org.au/mongodb-php-driver-install-for-ubuntu-910-unr/