Deploy website lên VPS hoặc server Docker

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

Sau khi hoàn thiện website thương mại điện tử mini ở bài 16, học viên sẽ học cách đưa website EC-CUBE từ máy cá nhân (localhost) lên môi trường thực tế như VPS hoặc server sử dụng Docker, sẵn sàng phục vụ người dùng cuối.

Deploy website lên VPS hoặc server Docker

1. Chuẩn bị server – VPS hoặc máy chủ dùng Docker

  • Chọn VPS chạy Ubuntu (20.04/22.04)
  • Cập nhật hệ thống:
    sudo apt update && sudo apt upgrade
    
  • Cài đặt các phần mềm cần thiết:
    • PHP 8.x + extensions (php-mbstring, php-xml, php-pdo, php-curl, php-intl, v.v.)
    • Web Server: Nginx hoặc Apache
    • Database: MySQL hoặc PostgreSQL
    • Git, Composer, Node.js (nếu cần)

2. Thiết lập EC-CUBE production environment

  • Clone hoặc upload source code EC-CUBE từ localhost:
    • Qua Git, SCP, rsync, hoặc FTP
  • Cập nhật file .env:
    • Thay APP_ENV=devAPP_ENV=prod
    • Thiết lập database credentials, mailer, URL
  • Build cache và schema:
    php bin/console cache:clear --no-warmup
    php bin/console doctrine:schema:update --force
    

3. Triển khai bằng Docker (lựa chọn thay thế)

  • Dùng Docker Compose để setup môi trường:
    • PHP + Nginx + MySQL + Redis
  • Ví dụ docker-compose.yml template cơ bản cho EC-CUBE
  • Dùng bind volume để mount source vào container

4. Cấu hình tên miền và SSL

  • Trỏ domain về VPS (qua DNS A record)
  • Cài đặt SSL miễn phí với Let's Encrypt (Certbot):
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com
    

5. Kiểm tra hoạt động và tối ưu hiệu năng

  • Test frontend và admin hoạt động ổn định
  • Kiểm tra log: /var/log/nginx/error.log, var/log/prod.log
  • Bật gzip, cache headers, và PHP-FPM optimization
  • Tối ưu: Redis cache, PHP OPcache, CDN (nếu có)

Kết luận

Sau bài học này, bạn đã sẵn sàng triển khai website EC-CUBE thực tế ra môi trường công khai, cấu hình đầy đủ bảo mật SSL, tên miền, và hiệu năng cho người dùng thật. Đây là bước quan trọng để biến một dự án học tập thành sản phẩm hoàn chỉnh.

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ệ