Hướng Dẫn Triển Khai Laravel 9 với MySQL, Redis và Queue Jobs lên Railway
Triển khai ứng dụng Laravel của bạn lên Railway với MySQL và Redis không hề khó khăn. Dưới đây là hướng dẫn chi tiết từng bước để giúp bạn thực hiện điều này.
Giới thiệu
- Tham khảo hướng dẫn chi tiết
- Ví dụ API: LINE Bot API
- Giao diện người dùng: LINE Bot Client
1. Thiết lập Dịch Vụ Database MySQL
-
Bắt đầu bằng cách tạo cơ sở dữ liệu MySQL trên Railway. Sau khi tạo xong, bạn sẽ nhận được thông tin như sau:
MYSQLDATABASE : railway MYSQLHOST : viaduct.proxy.rlwy.net MYSQLPASSWORD : ff-g5E3HcFC5G3DC3FDG1C-D5ACcBH2A MYSQLPORT : 49926 MYSQLUSER : root MYSQL_DATABASE : railway
-
Sử dụng thông tin này để đăng nhập vào hệ quản trị cơ sở dữ liệu như VS Code hoặc SQL Heidi để chạy các file SQL và tạo cơ sở dữ liệu như bạn vẫn thường làm tại địa phương.
2. Cấu hình Dịch Vụ Laravel - Jobs
Giải thích
- Khi triển khai project, bạn cần sử dụng biến
NIXPACKS_START_CMD
để xác định cách thức chạy các lệnh trong Laravel. Có hai cách:- Sử dụng
&
để chạy song song:NIXPACKS_START_CMD=php artisan queue:work & php artisan user:broadcast & php artisan user:statistical
- Sử dụng
&&
để chạy tuần tự, lệnh này sẽ chạy sau khi lệnh trước đó hoàn thành.
- Sử dụng
Cách Giải Quyết
-
Tạo ba dịch vụ chính:
- Database MySQL
- Dịch vụ Laravel Server
- Dịch vụ Laravel Jobs
-
Cả hai dịch vụ Laravel sẽ kết nối đến cùng một cơ sở dữ liệu với cấu hình tương tự như nhau. Duy nhất dịch vụ Laravel Jobs sẽ có thêm biến
NIXPACKS_START_CMD
.
Cấu Hình ENV trên Railway Laravel
plaintext
APP_DEBUG=true
APP_ENV=production
APP_KEY=base64:cfDBHY1xnKPgpyoOjt2o1K7y+M7rzJbxITSGwhjmQsI=
APP_NAME=LINE Bot - Support LINE OA
DB_CONNECTION=mysql
DB_DATABASE=railway
DB_HOST=viaduct.proxy.rlwy.net
DB_PASSWORD=ff-g5E3HcFC5G3DC3FDG1C-D5ACcBH2A
DB_PORT=49926
DB_USERNAME=root
QUEUE_CONNECTION=database
CACHE_DRIVER=file
3. Cấu Hình Dịch Vụ Redis
- Tạo Redis trên Railway và lưu lại thông tin chi tiết như sau:
plaintext
REDIS_HOST=monorail.proxy.rlwy.net
REDIS_PORT=42828
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
- Đừng quên cài đặt Redis với lệnh:
composer require predis/predis
. Tối ưu hóa ứng dụng của bạn bằng cách cập nhật tệp cấu hình và chạy các lệnh sau:composer dump-autoload
php artisan optimize:clear
php artisan optimize
4. Triển Khai Client trên Vercel
- Để triển khai frontend, bạn chỉ cần trỏ đến repo GitHub của ứng dụng frontend của bạn trên Vercel và nó sẽ tự động triển khai.
Kết Luận
Triển khai Laravel 9 với MySQL và Redis lên Railway rất dễ dàng nếu bạn theo đúng từng bước hướng dẫn. Hãy đảm bảo rằng mọi biến được cấu hình phù hợp trong tệp .env của từng dịch vụ. Nếu bạn làm đúng, mọi thứ sẽ hoạt động trơn tru.
Chúc bạn thành công!
source: viblo