Lando là công cụ local development mạnh mẽ cho Laravel, hỗ trợ sẵn PHP, Nginx, database, Redis, Mailpit và nhiều service khác. Bài viết này hướng dẫn thiết lập môi trường Laravel đầy đủ với Lando.
1. Cài đặt Lando
Lando hỗ trợ macOS, Windows và Linux. Tải và cài đặt từ lando.dev/download. Sau khi cài, kiểm tra:
lando version
# Output: v3.20.8 hoặc mới hơn
2. Khởi tạo dự án Laravel
# Tạo project Laravel mới
composer create-project laravel/laravel my-app
cd my-app
# Init Lando
lando init --source cwd --recipe laravel --webroot public
3. Cấu hình .lando.yml đầy đủ
name: my-laravel-app
recipe: laravel
config:
php: "8.3"
webroot: public
database: mariadb:10.11
cache: redis
via: nginx
xdebug: true
services:
appserver:
build:
- composer install
- cp .env.example .env
- php artisan key:generate
overrides:
environment:
APP_ENV: local
DB_CONNECTION: mysql
DB_HOST: database
DB_PORT: 3306
DB_DATABASE: laravel
DB_USERNAME: laravel
DB_PASSWORD: laravel
REDIS_HOST: cache
node:
type: node:20
build:
- npm install
- npm run build
tooling:
artisan:
service: appserver
cmd: php artisan
npm:
service: node
composer:
service: appserver
cmd: composer
proxy:
appserver:
- my-laravel-app.lndo.site
- admin.my-laravel-app.lndo.site
4. Các service chi tiết
4.1 Database (MariaDB)
Lando tự động tạo database với thông số mặc định. Có thể tuùy chỉnh:
services:
database:
type: mariadb:10.11
portforward: 3307
creds:
user: laravel
password: secret
database: my_app
4.2 Redis Cache
services:
cache:
type: redis:7
portforward: 6379
Trong file .env, cấu hình Redis:
REDIS_HOST=cache
REDIS_PORT=6379
CACHE_STORE=redis
SESSION_DRIVER=redis
4.3 Mailpit (Email testing)
services:
mailpit:
type: mailpit
hogfrom:
- appserver
Mailpit UI truy cập tại http://my-laravel-app.lndo.site:8025. Cấu hình .env:
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_FROM_ADDRESS="[email protected]"
4.4 Queue Worker
tooling:
queue:
service: appserver
cmd: php artisan queue:work redis --sleep=3 --tries=3
horizon:
service: appserver
cmd: php artisan horizon
5. Xdebug
Bật Xdebug trong .lando.yml, sau đó chạy:
# Bật Xdebug
lando xdebug on
# Debug một lệnh artisan
lando artisan migrate --xdebug
# Debug với browser
# Cài Xdebug helper extension, click "Debug"
# Truy cập URL, IDE (PhpStorm) sẽ bắt breakpoint
6. Lệnh thường dùng
# Start
lando start
# Chạy lệnh Artisan
lando artisan migrate
lando artisan make:model Product -m
# Chạy npm
lando npm run dev
# Queue
lando queue
# SSH vào container
lando ssh
# Xem log
docker logs my-laravel-app-appserver-1
# Dừng
lando poweroff
Tham khảo: Lando là gì? | Cấu hình .lando.yml | Lando Tips