Lando cho Laravel: Hướng dẫn cấu hình .lando.yml chi tiết (MariaDB, Redis, Mailpit, Xdebug, Queue)

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

Khoi Pro (Nguyễn Minh Khôi)

Founder of Code Tốt (codetot.vn). WordPress developer and performance optimization specialist. Author at Chuyên DEV (chuyendev.com). Personal site: khoipro.com.