sail 本身沒有附帶 MongoDB 和 php MongoDB的 擴充,但是 sail 是使用 docker 建立的,我們可以很方便的去修改任何東西
安裝PHP擴充套件
首先在目錄下執行命令,釋出配置檔案到當前的 docker
目錄下
sail artisan sail:publish
進入到 docker 目錄,找到對應的php版本目錄,開啟 Dockerfile
編輯第31行,在最後加上 php8.0-mongodb
,加完以後如圖
然後在命令列重新構建
sail build --no-cache
構建完成後,我們啟動容器
sail up -d
到這一步,PHP的MongoDB擴充就安裝好了
安裝 jenssegers/mongodb
直接執行命令即可
sail composer require jenssegers/mongodb
安裝MongoDB資料庫
開啟 docker-compose.yml
檔案,新增以下內容,加在其他服務後面即可
mongo:
image: 'mongo:4.4'
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: '${DB_USERNAME}'
MONGO_INITDB_ROOT_PASSWORD: '${DB_PASSWORD}'
MONGO_INITDB_DATABASE: '${DB_DATABASE}'
volumes:
- 'sailmongo:/data/db'
networks:
- sail
然後申明 volume
volumes:
sailmysql:
driver: local
sailredis:
driver: local
sailmeilisearch:
driver: local
sailmongo: # 這個是新加的
driver: local
配置 laravel 連線
最後,我們開啟 config/database.php
'mongodb' => [
'driver' => 'mongodb',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE') ,
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'options' => [
'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'),
],
]
修改 .env
DB_CONNECTION = mongodb
DB_HOST = mongo
DB_PORT = 27017
DB_DATABASE = laravel_sail
DB_USERNAME = root
DB_PASSWORD = root
最後重新構建一下
sail up -d
好了,愉快的玩耍去吧
本作品採用《CC 協議》,轉載必須註明作者和本文連結