몽고DB연동을 위해서 우분투에서 pecl 을 이용해서 설치를 해야하는데
pecl 를 모른다고 에러가 나네요
그래서 또 열심히 자료를 찾아보니 php-dev를 설치하라고 하네요.
일단 제 로컬환경인 도커에 먼저 설치해봅니다.
# apt install php7.4-dev
# pecl install mongodb
위와 같이 했는데 오류가 발생하는 경우가 있습니다. 그럴 때는 의존적인 모듈이 빠져 잇을 수 잇으니 추가 설치가 필요합니다.
$ sudo php -m
설치된 PHP 관련 모듈을 확인해 주시고 , 아래와 같이 필요한 모듈을 설치해주면 됩니다. 저의 경우는 xml이 없어서 발생한 문제였습니다.
$ sudo apt-get install php-pear
pear는 이미 최신버전이 설치되어 있어 전 건너띄었어요
$ sudo apt-get install php-xml php7.4-xml
# vi /etc/php/7.4/cli/php.ini
위 파일을 열어 편집합니다.
extension="mongodb.so"
확장모듈을 추가하기 위해서 위와 같이 수정합니다.
# composer require jenssegers/mongodb
위와 같이 실행을 해 줍니다.
완료되면 Laravel 의 DB환경을 추가해줍니다.
※ Laravel 소스에서 환경파일 수정하기
Step 1. config\database.php 파일을 수정합니다.
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('DB_URI', 'mongodb+srv://username:password@<atlas-cluster-uri>/myappdb?retryWrites=true&w=majority'),
'database' => 'myappdb',
],
Step 2. DB 커넥션을 기본값으로 mongodb로 변경하기(필요할 분만)
/*
|--------------------------------------------------------------------------
| Default Database Connection Name
|--------------------------------------------------------------------------
|
| Here you may specify which of the database connections below you wish
| to use as your default connection for all database work. Of course
| you may use many connections at once using the Database library.
|
*/
'default' => env('DB_CONNECTION', 'mongodb'),
전 몽고DB가 부가적인 거라 안했어요
Step 3. Define Providers 수정
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Jenssegers\Mongodb\MongodbServiceProvider::class,
이제 완료되었으니 몽고DB를 이용하여 CRUD를 구현해보면 됩니다.
저의 경우에는 Laravel에서는 Read 만 목적으로 설치했어요.