Triển khai lên Production

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 10 tháng 6, 2025

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:

  1. Đưa mã nguồn lên GitHub/GitLab.

  2. Tạo file .env.production để tách biệt cấu hình môi trường.

  3. Cài đặt server (nếu dùng VPS):

    • Nginx + PHP-FPM hoặc Docker
    • MySQL/PostgreSQL
  4. 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:

  1. Tạo một file Dockerfiledocker-compose.yml cho project API đã làm ở bài 30.
  2. Build và chạy ứng dụng trên máy local bằng Docker.
  3. Đăng ký tài khoản Heroku hoặc thuê VPS (nếu có).
  4. Triển khai ứng dụng thật sự lên Heroku hoặc VPS.
  5. 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.

Website Logo

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.

Bình luận

Website Logo

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

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ