Triển khai lên Production
Sau khi hoàn thiện các dự án API và web blog, bước tiếp theo là triển khai ứng dụng lên môi trường thực tế để người dùng có thể truy cập từ internet. Bài học này sẽ hướng dẫn bạn cách Dockerize một ứng dụng Slim Framework, cấu hình hosting, và triển khai lên các nền tảng như Heroku hoặc VPS.
Mục tiêu
- Đóng gói ứng dụng Slim vào container bằng Docker.
- Cấu hình môi trường production (cổng, biến môi trường, database,…).
- Triển khai ứng dụng lên dịch vụ hosting như Heroku hoặc máy chủ VPS.
- Làm quen với khái niệm DevOps cơ bản: build – run – deploy.

1. Dockerize Slim App
a. Tạo Dockerfile
FROM php:8.2-apache
# Cài đặt các extension cần thiết
RUN docker-php-ext-install pdo pdo_mysql
# Copy source code vào container
COPY . /var/www/html
# Bật rewrite module cho Apache
RUN a2enmod rewrite
# Cấu hình thư mục làm việc
WORKDIR /var/www/html
# Thiết lập quyền
RUN chown -R www-data:www-data /var/www/html
b. Tạo docker-compose.yml
version: '3.8'
services:
app:
build: .
ports:
- "8000:80"
volumes:
- .:/var/www/html
depends_on:
- db
environment:
- DB_HOST=db
- DB_NAME=product_db
- DB_USER=root
- DB_PASS=secret
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: product_db
ports:
- "3306:3306"
c. Chạy Docker:
docker-compose up --build
Truy cập: http://localhost:8000
2. Cấu hình trên Hosting
a. Các lựa chọn triển khai:
- Heroku: Triển khai nhanh, đơn giản, thích hợp cho API/web demo.
- VPS (DigitalOcean, Linode,…): Tùy biến cao, phù hợp với production thật sự.
b. Các bước chính:
-
Đưa mã nguồn lên GitHub/GitLab.
-
Tạo file
.env.production
để tách biệt cấu hình môi trường. -
Cài đặt server (nếu dùng VPS):
- Nginx + PHP-FPM hoặc Docker
- MySQL/PostgreSQL
-
Triển khai bằng Git hoặc Docker:
- Pull từ repo về server.
- Build và chạy container (nếu dùng Docker).
- Cấu hình reverse proxy (nếu có).
Bài tập thực hành
Yêu cầu:
- Tạo một file
Dockerfile
vàdocker-compose.yml
cho project API đã làm ở bài 30. - Build và chạy ứng dụng trên máy local bằng Docker.
- Đăng ký tài khoản Heroku hoặc thuê VPS (nếu có).
- Triển khai ứng dụng thật sự lên Heroku hoặc VPS.
- Kiểm tra API thông qua Postman hoặc trình duyệt.
Ví dụ cụ thể
Triển khai lên Heroku
# Đăng nhập
heroku login
# Tạo project
heroku create product-api-demo
# Push code (sau khi thêm Heroku remote)
git push heroku main
# Thiết lập biến môi trường
heroku config:set DB_HOST=...
Lưu ý: Heroku không hỗ trợ Docker trực tiếp cho PHP, bạn cần dùng Heroku container registry hoặc deploy từ buildpack.
Kết luận
Việc triển khai ứng dụng là bước cuối cùng trong quy trình phát triển phần mềm. Bài học này giúp bạn tiếp cận thực tế về DevOps cơ bản, hiểu rõ quá trình đóng gói – cấu hình – triển khai một dự án. Khi thành thạo kỹ năng này, bạn sẽ sẵn sàng đưa sản phẩm thật của mình đến tay người dùng một cách chuyên nghiệp.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com