0

Cài đặt và sử dụng MongoDB với Laravel

I. Giới thiệu

MongoDB là hệ quản trị CSDL NoSQL phổ biến nhất trên thế giới. Tuy nhiên mặc định Laravel PHP Framework lại không hỗ trợ MongoDB. Vì vậy trong tutorial này, VinaSupport.com sẽ hướng dẫn các bạn cài đặt và tích hợp MongoDB vào project Laravel.

II. Cài đặt và sử dụng

1. MongoDB là gì?

MongoDB là hệ quản trị CSDL NoSQL (Document Database), nơi bạn có thể thực hiện các truy vấn (query), có khả năng mở rộng, mềm dẻo và đặc biệt là miễn phí.

  • Phát triển bơi MongoDB Inc.
  • Phát hành lần đầu: 11/02/2009
  • Phiên bản mới nhất: 4.0.10 / 31/052019
  • Repository: github.com/mongodb/mongo
  • Ngôn ngữ lập trình: C++, Go, JavaScript, Python
  • Hỗ trợ OS: Windows Vista and later, Linux, OS X 10.7 and later, Solaris, FreeBSD
  • Website www.mongodb.com

2. Cài đặt MongoDB trên Ubuntu

Để cài đặt MongoDB cần 1 máy chủ đã cài sẵn HDH Ubuntu (Ubuntu Desktop hoặc Ubuntu Server), các bạn có thể cài trên local hoặc sử dụng dịch vụ Vultr Cloud VPS mà mình đang sử dụng.

Các bước cài đặt được thực hiện bằng command như sau:

Bước 1: Import “MongoDB public GPG Key” sử dụng command apt-key

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

Bước 2: Thêm repo của MongoDB

Với Ubuntu 16.04 LTS:

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

Với Ubuntu 18.04 LTS:

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

Để biết phiên bản Ubuntu bạn đang sử dụng là gì thì hay chạy lệnh: lsb_release -dc

Bước 3: Cập nhật lại packages

sudo apt-get update

Bước 4: Cài đặt MongoDB

Cài bản mới nhất:

sudo apt-get install -y mongodb-org

Cài đặt 1 phiên bản bất kỳ:

sudo apt-get install -y mongodb-org=4.0.10 mongodb-org-server=4.0.10 mongodb-org-shell=4.0.10 mongodb-org-mongos=4.0.10 mongodb-org-tools=4.0.10

Bước 5: Khởi động MongoDB

sudo service mongod start

Kiểm tra MongoDB đã được cài đặt thành công chưa?

sudo service mongod status

3. Kết nối và quản lý MongoDB với Robo 3T

Robo 3T (formerly Robomongo) là một phần mềm MongoDB Client GUI chạy trên cả Windows, Linux và MacOS, các bạn có thể download miễn phí ở đây.

Sau khi cài đặt xong, mở Robo 3T lên và tạo 1 kết nối:

Trường hợp tạo kết nối trên localhost thì mặc định không phải làm gì cả, Address các bạn để là localhost. Còn trường hợp kết nối từ xa (remote connect) thì phải phải sửa file /etc/mongod.conf như bên dưới để bind tới địa chỉ IP là 0.0.0.0

III. Cài đặt MongoDB PHP Extension

Để cài đặt mongodb Extension cho PHP, chúng ta sử dụng command sau:

sudo /opt/lampp/bin/pecl install mongodb

Sau đó thêm dòng sau vào file php.ini và restart lại httpd

extension=mongodb.so

Cài đặt package jenssegers/mongodb cho Laravel Đâu là thư viện giúp cho Laravel có thể thao tác với MongoDB. Cài đặt thông qua Composer

composer require jenssegers/mongodb

Sửa file config/app.php thêm MongoServiceProvider

Jenssegers\Mongodb\MongodbServiceProvider::class,

Thêm kết nối vào file config/database.php

'mongodb' => [
    'driver' => 'mongodb',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', 27017),
    'database' => env('DB_DATABASE', 'homestead'),
    'username' => env('DB_USERNAME', 'homestead'),
    'password' => env('DB_PASSWORD', 'secret'),
    'options' => [
        // here you can pass more settings to the Mongo Driver Manager
        // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use
        'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'), // required with Mongo 3+
    ],
],

Chú ý: Trên Ubuntu 16.04 fix lỗi

Sử dụng các command sau đây để fix lỗi này

strings /opt/lampp/lib/libstdc++.so.6 | grep CXXABI
locate libstdc++.so.6
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/lampp/lib/libstdc++.so.6

IV. Kết luận.

Như vậy mình đã giới thiệu xong cách cài MongoDB với Laravel.

Link tham khảo. https://vinasupport.com/cai-dat-va-su-dung-mongodb-voi-laravel/


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí