Để chạy một website động trên VPS Linux, bạn cần một bộ phần mềm nền: máy chủ web, ngôn ngữ xử lý và cơ sở dữ liệu. Hai bộ phổ biến là LEMP (Linux, Nginx, MySQL/MariaDB, PHP) và LAMP (Linux, Apache, MySQL/MariaDB, PHP). Về cơ bản chúng giống nhau, chỉ khác ở máy chủ web: Nginx hay Apache. Bài viết hướng dẫn cài LEMP/LAMP để chạy website trên Linux, theo các bước rõ ràng cho người mới. Sau khi hoàn thành, bạn sẽ có một máy chủ web sẵn sàng phục vụ website PHP như WordPress hoặc ứng dụng tự viết.
Mục lục1. Trước khi bắt đầu2. LEMP hay LAMP: chọn cái nào?3. Bước 1: Cài máy chủ web4. Bước 2: Cài PHP5. Bước 3: Cài cơ sở dữ liệu6. Bước 4: Cấu hình site và đưa website lên7. Bước 5: Bật HTTPS (SSL)8. Phần nâng cao: tối ưu và bảo mật cơ bản9. Xử lý lỗi thường gặp10. Câu hỏi thường gặp10.1. LEMP và LAMP khác nhau chỗ nào?10.2. Có cần cài cả Nginx và Apache không?10.3. Chạy WordPress thì dùng LEMP hay LAMP?11. Kết luận
1. Trước khi bắt đầu
- Đã có VPS Linux (Ubuntu hoặc AlmaLinux) và đăng nhập được qua SSH với quyền sudo.
- Đã cập nhật hệ thống (sudo apt update hoặc sudo dnf update).
- Chọn cấu hình VPS phù hợp nhu cầu; nếu chưa chắc, xem bài Chọn cấu hình Cloud VPS phù hợp nhu cầu cùng nhóm.
2. LEMP hay LAMP: chọn cái nào?
- Nginx (LEMP): nhẹ, xử lý tốt nhiều kết nối đồng thời, thường nhanh với nội dung tĩnh và tải cao. Cấu hình theo cú pháp riêng.
- Apache (LAMP): linh hoạt, hỗ trợ file cấu hình .htaccess tiện cho nhiều ứng dụng phổ thông (như một số mã nguồn mở). Quen thuộc với nhiều người.
Nếu chưa có ràng buộc cụ thể, Nginx là lựa chọn phổ biến cho website hiện nay nhờ hiệu năng; Apache phù hợp khi ứng dụng của bạn yêu cầu hoặc bạn đã quen.
3. Bước 1: Cài máy chủ web
- Nginx (Ubuntu): sudo apt install nginx.
- Apache (Ubuntu): sudo apt install apache2.
- Trên AlmaLinux dùng sudo dnf install nginx hoặc sudo dnf install httpd.
Sau khi cài, bật dịch vụ và cho tự khởi động: ví dụ sudo systemctl enable --now nginx. Mở trình duyệt truy cập IP máy chủ để thấy trang mặc định.
4. Bước 2: Cài PHP
- Ubuntu (với Nginx): sudo apt install php-fpm php-mysql và các module cần thiết.
- Ubuntu (với Apache): sudo apt install php libapache2-mod-php php-mysql.
- AlmaLinux: cài php php-fpm php-mysqlnd qua dnf.
PHP-FPM xử lý mã PHP cho Nginx; với Apache có thể dùng module PHP trực tiếp.

5. Bước 3: Cài cơ sở dữ liệu
- Cài MariaDB (hoặc MySQL): sudo apt install mariadb-server (Ubuntu) hoặc sudo dnf install mariadb-server (AlmaLinux).
- Chạy sudo mysql_secure_installation để đặt mật khẩu root cơ sở dữ liệu và siết các thiết lập mặc định không an toàn.
- Tạo database và user riêng cho website, cấp quyền vừa đủ cho user đó.
6. Bước 4: Cấu hình site và đưa website lên
- Đặt mã nguồn website vào thư mục phục vụ (ví dụ trong /var/www/tenwebsite).
- Tạo file cấu hình site cho Nginx/Apache trỏ tới thư mục đó và tên miền.
- Kiểm tra cấu hình (ví dụ sudo nginx -t) rồi tải lại dịch vụ.
- Trỏ tên miền về IP máy chủ và truy cập thử.
7. Bước 5: Bật HTTPS (SSL)
Website nên chạy HTTPS để mã hóa kết nối. Bạn có thể dùng công cụ cấp chứng chỉ tự động để tạo và gia hạn chứng chỉ, rồi cấu hình máy chủ web dùng chứng chỉ đó. Về vai trò của SSL/TLS và cách cấu hình đúng (phiên bản TLS, HSTS, chuyển hướng), xem bài SSL/TLS và HTTPS: vai trò và cách cấu hình đúng bên chuyên mục An ninh.
8. Phần nâng cao: tối ưu và bảo mật cơ bản
- Tối ưu hiệu năng: bật nén (gzip), cấu hình cache, tinh chỉnh PHP-FPM (số worker) theo tài nguyên máy chủ.
- Bảo mật cơ bản: ẩn thông tin phiên bản máy chủ web/PHP, giới hạn quyền thư mục web, cập nhật thường xuyên, và cân nhắc thêm tường lửa ứng dụng web (WAF) cho site quan trọng.
- Sao lưu: sao lưu định kỳ mã nguồn và cơ sở dữ liệu, và thử phục hồi để chắc chắn bản sao dùng được.
9. Xử lý lỗi thường gặp
- Trang trắng hoặc lỗi 502: thường do PHP-FPM chưa chạy hoặc cấu hình sai socket; kiểm tra dịch vụ PHP và log lỗi.
- Không kết nối được cơ sở dữ liệu: kiểm tra user/mật khẩu database và quyền truy cập.
- Lỗi 403/404: kiểm tra quyền thư mục và đường dẫn root trong cấu hình site.
10. Câu hỏi thường gặp
10.1. LEMP và LAMP khác nhau chỗ nào?
Khác biệt chính là máy chủ web: LEMP dùng Nginx, LAMP dùng Apache. Phần còn lại (Linux, PHP, MySQL/MariaDB) tương tự. Nginx thường nhẹ và tốt với tải cao; Apache linh hoạt và quen thuộc với nhiều ứng dụng phổ thông.
10.2. Có cần cài cả Nginx và Apache không?
Thường không. Chọn một máy chủ web phù hợp là đủ. Trong một số kiến trúc nâng cao, người ta đặt Nginx trước Apache làm reverse proxy, nhưng đó là trường hợp đặc thù, không cần thiết cho website thông thường.
10.3. Chạy WordPress thì dùng LEMP hay LAMP?
Cả hai đều chạy WordPress tốt. Nginx (LEMP) thường được chọn vì hiệu năng với lưu lượng cao; Apache (LAMP) tiện nhờ hỗ trợ .htaccess. Chọn theo nhu cầu hiệu năng và mức độ quen thuộc của bạn.
11. Kết luận
Cài LEMP hoặc LAMP để chạy website trên Linux gồm các bước rõ ràng: cài máy chủ web, PHP, cơ sở dữ liệu, cấu hình site và bật HTTPS. Chọn Nginx hay Apache tùy nhu cầu hiệu năng và thói quen. Sau khi chạy được, đừng quên tối ưu, bảo mật cơ bản và sao lưu định kỳ để website vận hành ổn định và an toàn.
Cần hỗ trợ kỹ thuật? Nếu cần hỗ trợ cài LEMP/LAMP hoặc đưa website lên VPS, liên hệ đội ngũ kỹ thuật Cloudzone qua hotline/Zalo 0906.489.647 hoặc email support@cloudzone.vn.
