Tóm tắt nhanh: LEMP stack là bộ phần mềm gồm Linux, Nginx, MySQL (hoặc MariaDB) và PHP — nền tảng để chạy website động trên VPS. Để cài LEMP stack trên Ubuntu VPS, bạn thực hiện lần lượt: apt install nginx → cài PHP-FPM kèm extension cần thiết → cài MySQL hoặc MariaDB → cấu hình Nginx server block để xử lý file PHP qua FastCGI. Với VPS có kết nối internet ổn định, toàn bộ quá trình mất khoảng 15–20 phút.
- Cài đúng thứ tự: Nginx → PHP-FPM → MySQL → cấu hình server block
- Sau mỗi bước cài, dùng
systemctl statusđể verify service đã chạy — đừng bỏ qua bước này - Ubuntu 22.04 LTS là bản khuyến nghị cho production 2025; Ubuntu 24.04 dùng lệnh gần như tương tự
- MySQL 8.0 và MariaDB 10.x đều tương thích — MariaDB nhẹ hơn, MySQL có JSON support nâng cao hơn
- Mở port 80 và 443 trên ufw trước khi test từ trình duyệt, không thì sẽ không truy cập được dù cài đúng
SSH vào VPS lần đầu, màn hình terminal trắng tinh, con trỏ nhấp nháy — không biết gõ gì tiếp theo. Cảm giác này khá quen với người mới nhận thông tin đăng nhập VPS lần đầu. Bước tiếp theo cần làm là cài LEMP stack: Nginx xử lý HTTP request, PHP-FPM chạy code PHP, MySQL hoặc MariaDB làm database.
Bài này hướng dẫn cài Nginx + PHP + MySQL (LEMP Stack) trên Ubuntu VPS — từng lệnh theo thứ tự, có kiểm tra sau mỗi bước, và xử lý 2 lỗi thường gặp nhất khi mới setup. Thao tác này đóng vai trò cực kỳ quan trọng trong Hướng dẫn cấu hình VPS để chạy website dành cho quản trị viên thực tế. Không giải thích VPS là gì hay Linux cơ bản — nếu chưa vào được server, đọc trước cách SSH vào VPS lần đầu trước khi tiếp tục.
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 1 Cài đặt Nginx, PHP và MySQL trên Ubuntu VPS](https://interdata.vn/blog/wp-content/uploads/2026/03/Cai-dat-Nginx-PHP-va-MySQL-tren-Ubuntu-VPS.webp)
Yêu Cầu Trước Khi Bắt Đầu
Trước khi chạy bất kỳ lệnh nào, kiểm tra nhanh 4 điều sau:
| Yêu cầu | Kiểm tra bằng lệnh | Kết quả cần thấy |
|---|---|---|
| VPS chạy Ubuntu 22.04 hoặc 24.04 | lsb_release -a |
Ubuntu 22.04.x LTS hoặc 24.04.x LTS |
| Đang login bằng root hoặc user có sudo | whoami |
root hoặc username của bạn |
| VPS có kết nối internet | ping -c 3 google.com |
3 packets transmitted, 0% packet loss |
| Package list chưa được update | — | Chạy apt update trước tiên |
Bài này dùng Ubuntu 22.04 LTS làm ví dụ chính. Người dùng Ubuntu 24.04 có thể làm theo hoàn toàn — chỉ có PHP default version khác, sẽ ghi chú rõ từng chỗ. Nếu bạn đang dùng bản Ubuntu cũ hơn (18.04, 20.04), khuyến nghị nâng cấp trước; một số package trong bài này có thể không available hoặc có version khác.
Cài Nginx Trên Ubuntu VPS
Tại sao chọn Nginx thay vì Apache cho VPS?
Nginx xử lý concurrent connection tốt hơn Apache đáng kể khi RAM thấp — đây là lý do chính. Apache dùng mô hình process-based (mỗi request tạo ra hoặc dùng 1 process/thread riêng), trong khi Nginx dùng event-driven non-blocking I/O. Trên VPS 1–2GB RAM với vài trăm request đồng thời, Apache có thể ngốn hết RAM; Nginx vẫn chạy ổn định.
| Tiêu chí | Nginx | Apache |
|---|---|---|
| RAM usage khi idle | ~5–15 MB | ~20–50 MB (tùy module) |
| Xử lý concurrent connections | Tốt — event-driven | Kém hơn ở traffic cao |
| Cấu hình PHP | Qua PHP-FPM (FastCGI) | mod_php hoặc PHP-FPM |
| Static file serving | Rất nhanh | Chậm hơn Nginx |
Với VPS phổ thông 1–4GB RAM chạy WordPress, Laravel, hay ứng dụng PHP thông thường — Nginx là lựa chọn hợp lý hơn. Apache vẫn tốt, nhưng cần cấu hình thêm để đạt hiệu suất tương đương.
Các lệnh cài Nginx trên Ubuntu 22.04 / 24.04
Bắt đầu bằng update package list trước — bước này nhiều người bỏ qua rồi thắc mắc tại sao cài được version cũ.
# Cập nhật danh sách package
apt update
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 2 Cập nhật danh sách package](https://interdata.vn/blog/wp-content/uploads/2026/03/Cap-nhat-danh-sach-package.png)
# Cài Nginx
apt install nginx -y
# Enable Nginx khởi động cùng server (quan trọng — nếu không, reboot xong Nginx sẽ không tự chạy)
systemctl enable nginx
# Khởi động Nginx ngay
systemctl start nginx
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 3 Cài đặt, bật và khởi động Nginx](https://interdata.vn/blog/wp-content/uploads/2026/03/Cai-dat-bat-va-khoi-dong-Nginx.png)
Sau đó mở port 80 trên firewall:
# Cho phép HTTP (port 80) và HTTPS (port 443)
ufw allow 'Nginx Full'
# Kiểm tra ufw đang active chưa
ufw status
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 4 Kiểm tra trạng thái của ufw](https://interdata.vn/blog/wp-content/uploads/2026/03/Kiem-tra-trang-thai-cua-ufw.png)
Nếu PuTTY báo command 'ufw' not found..., thì đây là vấn đề do chưa cài đặt ufw. Khi ấy hãy cài đặt ufw bằng apt install ufw và bật ufw bằng ufw enable — nhưng nhớ allow port SSH (22) trước: ufw allow OpenSSH. Không thì bạn sẽ bị khóa khỏi server ngay sau khi enable firewall. Ubuntu 24.04 dùng lệnh hoàn toàn tương tự — không có gì khác biệt ở bước cấu hình Nginx này.
Làm sao biết Nginx đã chạy thành công?
Chạy lệnh sau để kiểm tra trạng thái service:
systemctl status nginx
Kết quả cần thấy là dòng Active: active (running) màu xanh lá. Nếu thấy failed hoặc inactive thì Nginx chưa chạy — cần xem log để tìm nguyên nhân.
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 5 Trạng thái cài đặt Nginx cài đặt thành công](https://interdata.vn/blog/wp-content/uploads/2026/03/Trang-thai-cai-dat-Nginx-cai-dat-thanh-cong.png)
Cách 2 — trực quan hơn: mở trình duyệt, nhập IP VPS vào thanh địa chỉ. Nếu thấy trang “Welcome to nginx!” là xong. Không thấy trang đó? Hãy kiểm tra 2 nguyên nhân phổ biến nhất:
- ufw chưa mở port 80 — chạy
ufw allow 80/tcprồi thử lại - Nginx chưa start — chạy
systemctl start nginx
# Nếu Nginx bị lỗi, xem log để tìm nguyên nhân
journalctl -xe --unit nginx
Cài PHP-FPM Và Các Extension Cần Thiết
Nên cài PHP version nào cho Ubuntu 22.04 / 24.04?
Ubuntu 22.04 LTS đi kèm PHP 8.1 trong repository mặc định. Tuy nhiên, khuyến nghị dùng PHP 8.3 — lý do: PHP 8.1 sẽ hết security support vào tháng 12/2025, trong khi PHP 8.3 được support đến tháng 12/2027. WordPress 6.x và Laravel 11.x đều tương thích tốt với 8.3. Để cài PHP 8.3 trên Ubuntu 22.04, cần thêm PPA từ Ondřej Surý — maintainer PHP package uy tín nhất cho Ubuntu. Ubuntu 24.04 không cần thêm PPA — PHP 8.3 đã có sẵn trong repository mặc định.
| Ubuntu Version | PHP mặc định | PHP khuyến nghị 2025 | Cần PPA? |
|---|---|---|---|
| Ubuntu 22.04 LTS | PHP 8.1 | PHP 8.3 | Có (ondrej/php) |
| Ubuntu 24.04 LTS | PHP 8.3 | PHP 8.3 | Không cần |
Lưu ý thời hạn: PHP 8.1 hết security support vào 12/2025. PHP 8.3 hết security support vào 12/2027. PHP 8.4 đã release tháng 11/2024 nhưng chưa được recommend cho production vì hệ sinh thái plugin/theme chưa cập nhật đầy đủ để tương thích hoàn toàn.
Các lệnh cài PHP-FPM và extension phổ biến
Với Ubuntu 22.04 — bạn cần thêm kho PPA trước:
# Thêm PPA của Ondřej Surý (cần trên Ubuntu 22.04)
add-apt-repository ppa:ondrej/php -y
apt update
Với Ubuntu 24.04 — hãy bỏ qua 2 lệnh trên, tiến hành bắt đầu trực tiếp từ đây:
# Cài PHP 8.3 FPM
apt install php8.3-fpm -y
# Cài extension phổ biến
apt install php8.3-mysql php8.3-curl php8.3-xml php8.3-mbstring php8.3-zip php8.3-gd -y
# Khởi động và enable PHP-FPM
systemctl enable php8.3-fpm
systemctl start php8.3-fpm
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 6 Trạng thái cài đặt PHP-FPM 8.3 thành công](https://interdata.vn/blog/wp-content/uploads/2026/03/Trang-thai-cai-dat-PHP-FPM-8.3-thanh-cong.png)
Giải thích nhanh từng extension được yêu cầu:
- php8.3-mysql — kết nối PHP với MySQL/MariaDB; thiếu module này WordPress sẽ không chạy được
- php8.3-curl — gọi API bên ngoài, xử lý HTTP request từ PHP
- php8.3-xml — parse XML, cần thiết cho nhiều CMS và framework hiện tại
- php8.3-mbstring — xử lý chuỗi đa byte (tiếng Việt, ký tự Unicode)
- php8.3-zip — giải nén file ZIP từ PHP; WordPress cần thư viện này khi install plugin/theme mới
- php8.3-gd — xử lý ảnh (resize, watermark); thiếu thì hình ảnh tải lên trong WordPress có thể bị lỗi
Nếu bạn cần setup thêm riêng cho Laravel, có thể bổ sung các lệnh: php8.3-bcmath php8.3-intl php8.3-redis.
Cách kết nối Nginx với PHP-FPM qua server block
Đây là bước quản trị viên hay bị bỏ qua nhất. Cài PHP-FPM xong mà không cấu hình Nginx server block đúng thì PHP vẫn không chạy — Nginx chỉ trả về file .php thô thay vì thực thi nó. Mở file config Nginx cho site của bạn bằng sudo nano /etc/nginx/sites-available/default, thêm hoặc sửa block xử lý PHP như sau:
server {
listen 80;
server_name your-domain.com; # Hoặc IP VPS nếu chưa có domain
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
# Block quan trọng — kết nối Nginx với PHP-FPM
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Socket path phải khớp với version PHP đang cài
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
3 dòng quan trọng nhất bạn cần để ý kỹ trong khối cấu hình:
location ~ \.php$— chỉ định Nginx chuyển mọi file có đuôi .php sang PHP-FPM xử lý.fastcgi_pass unix:/run/php/php8.3-fpm.sock— socket path phải khớp chính xác với version PHP. Nếu cài PHP 8.1 thì path làphp8.1-fpm.sock. Sai chi tiết này → bạn sẽ nhận lỗi 502 Bad Gateway ngay.include snippets/fastcgi-php.conf— file cấu hình có sẵn của Ubuntu, chứa các fastcgi_param cần thiết.
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 7 Kết nối Nginx với PHP-FPM qua server block](https://interdata.vn/blog/wp-content/uploads/2026/03/Ket-noi-Nginx-voi-PHP-FPM-qua-server-block.png)
Sau khi sửa file config, hãy test kỹ syntax và thực hiện reload:
# Kiểm tra syntax config trước khi reload (quan trọng)
nginx -t
# Nếu không có lỗi → tiến hành reload
systemctl reload nginx
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 8 Test và Reload Nginx](https://interdata.vn/blog/wp-content/uploads/2026/03/Test-va-Reload-Nginx.png)
Cài MySQL Trên Ubuntu VPS
Nên chọn MySQL hay MariaDB cho VPS Ubuntu?
MariaDB là bản fork trực tiếp của MySQL, tương thích ngược với hầu hết query và application. Nếu chạy WordPress, Joomla, Drupal, hay các ứng dụng PHP thông thường — MariaDB 10.x hoạt động ổn định và nhẹ hơn MySQL 8.0 một chút. Ngược lại, MySQL 8.0 phù hợp hơn nếu bạn cần JSON column type nâng cao, CTE (Common Table Expressions), hoặc window function — các tính năng đặc thù mà MySQL 8.0 implement tốt hơn ở thời điểm hiện tại.
| Tiêu chí | MySQL 8.0 | MariaDB 10.x |
|---|---|---|
| Tương thích WordPress/Joomla | Tốt | Tốt (thường tốt hơn) |
| RAM usage | Nhỉnh hơn ~10–20% | Nhẹ hơn |
| JSON support | Đầy đủ, native | Có nhưng hạn chế hơn |
| License | GPL + Oracle commercial | GPL hoàn toàn |
Kết luận thực tế: hãy chọn dùng MariaDB nếu bạn không có yêu cầu đặc thù nào. Bài này sẽ hướng dẫn cài MySQL 8.0 làm mẫu — nếu muốn dùng MariaDB, bạn chỉ cần thay mysql-server bằng mariadb-server trong lệnh cài, các bước còn lại được cấu hình giống hệt.
Các lệnh cài MySQL 8.0 trên Ubuntu
# Cài MySQL Server
apt install mysql-server -y
# Enable và start MySQL
systemctl enable mysql
systemctl start mysql
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 9 Trạng thái cài đặt MySQL thành công](https://interdata.vn/blog/wp-content/uploads/2026/03/Thong-bao-cai-dat-MySQL-thanh-cong.png)
Sau đó chạy wizard bảo mật — bước này không thể bỏ qua được nếu bạn cấu hình VPS dùng cho production:
mysql_secure_installation
Wizard cấu hình sẽ yêu cầu bạn trả lời lần lượt các thiết lập:
- VALIDATE PASSWORD component — nên chọn
Y, sau đó chọn level 1 (MEDIUM) đối với môi trường VPS phổ thông. - Change the password for root — bắt buộc đặt password mạnh, lưu lại cẩn thận.
- Remove anonymous users — chọn
Y, luôn luôn gỡ bỏ user vô danh. - Disallow root login remotely — chọn
Y; user root của MySQL tuyệt đối không nên được login từ xa. - Remove test database — chọn
Yđể dọn dẹp data thừa. - Reload privilege tables — chọn
Yđể thay đổi có hiệu lực ngay lập tức.
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 10 Chạy Wizard bảo mật](https://interdata.vn/blog/wp-content/uploads/2026/03/Chay-Wizard-bao-mat.png)
Tạo database và user MySQL đầu tiên cho ứng dụng
Không bao giờ dùng tài khoản root MySQL trực tiếp cho ứng dụng — đây là một rủi ro bảo mật nghiêm trọng. Mỗi website hay ứng dụng nên được cấp 1 database riêng, đi kèm 1 user riêng chỉ có quyền trên đúng database đó.
# Đăng nhập MySQL với quyền root
mysql -u root -p
# Tạo database mới (thay your_database bằng tên thực tế)
CREATE DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Tạo user mới
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_strong_password';
# Cấp quyền trên database vừa tạo
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';
# Áp dụng thay đổi quyền
FLUSH PRIVILEGES;
# Thoát MySQL
EXIT;
![Cách Cài Đặt Nginx + PHP + MySQL (LEMP Stack) Trên Ubuntu VPS [2026] 11 Tạo database và user MySQL đầu tiên cho ứng dụng](https://interdata.vn/blog/wp-content/uploads/2026/03/Tao-database-va-user-MySQL-dau-tien-cho-ung-dung.png)
Hãy lưu ý việc sử dụng utf8mb4 thay vì utf8 cũ — charset này hỗ trợ emoji và ký tự Unicode đầy đủ, đảm bảo tránh lỗi khi lưu nội dung tiếng Việt có dấu và các ký tự đặc biệt trên web.
Kiểm Tra Toàn Bộ LEMP Stack Hoạt Động
Sau khi quá trình cài đặt Nginx + PHP + MySQL trên Ubuntu VPS hoàn thiện, bạn nên tạo một file PHP test tĩnh để verify xem toàn bộ stack đang chạy đồng bộ đúng cách chưa:
# Tạo file phpinfo để test
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Mở trình duyệt web của bạn, truy cập ngay vào đường dẫn: http://<IP_VPS>/info.php. Nếu trang hiển thị đầy đủ thông tin PHP với các module liệt kê rõ ràng — LEMP stack của bạn đã hoạt động đúng. Kiểm tra nhanh các mục quan trọng trên trang phpinfo này: PHP Version (bắt buộc phải là 8.3.x), Server API (phải ghi nhận là FPM/FastCGI — không phải Apache), và mysqli hoặc PDO_MySQL phải có mặt trong danh sách module.
Sau khi test xong, hãy xóa file info.php ngay lập tức. File này vô tình tiết lộ toàn bộ cấu hình PHP, phiên bản hệ thống, và đường dẫn server vật lý — nguồn thông tin cực kỳ hữu ích cho bất kỳ kẻ tấn công nào dòm ngó server của bạn.
# Xóa file test sau khi verify xong
rm /var/www/html/info.php
Checklist 5 điểm trước khi coi setup hoàn tất thành công:
- Nginx running:
systemctl status nginx→active (running)✓ - PHP-FPM running:
systemctl status php8.3-fpm→active (running)✓ - MySQL running:
systemctl status mysql→active (running)✓ - File phpinfo hiển thị các module chính xác trên trình duyệt ✓
- Đã thao tác xóa bỏ file info.php ngay sau khi test ✓
Sau khi setup xong nền tảng LEMP, quá trình tiếp theo là tiến hành hardening server — hãy tham khảo các phương pháp bảo mật VPS Linux cơ bản trước khi chính thức đưa website vào hoạt động production.
Xử Lý Lỗi Thường Gặp Khi Cài LEMP Stack
Tại sao truy cập IP VPS chỉ thấy trang trắng hoặc 502 Bad Gateway?
Lỗi 502 Bad Gateway đồng nghĩa với việc Nginx đã nhận được request từ client nhưng không thể liên lạc được với PHP-FPM phía sau — thường xuất phát từ 1 trong 2 nguyên nhân cốt lõi: PHP-FPM thực tế chưa chạy, hoặc cấu hình socket path trong file config của Nginx đang bị sai lệch. Kiểm tra PHP-FPM trước tiên:
systemctl status php8.3-fpm
Nếu PHP-FPM báo trạng thái failed, tiến hành khởi động lại service:
systemctl restart php8.3-fpm
Nếu bạn thấy PHP-FPM đang chạy bình thường mà trình duyệt vẫn hiển thị 502, hãy kiểm tra lại socket path. Socket file mặc định của PHP 8.3 FPM nằm ở /run/php/php8.3-fpm.sock — hãy đối chiếu với dòng fastcgi_pass trong file Nginx config của bạn. Việc gọi sai version (ví dụ file config đang ghi php8.1-fpm.sock nhưng thực tế server đang chạy PHP 8.3) là nguyên nhân diễn ra rất phổ biến đối với newbie.
# Xem Nginx đang báo lỗi gì cụ thể
tail -f /var/log/nginx/error.log
Trường hợp trang trắng tinh (white page) xuất hiện thay vì 502 thường là do gặp lỗi PHP nghiêm trọng — hãy bật error display tạm thời để debug: thêm dòng ini_set('display_errors', 1); ngay phần đầu file PHP của bạn, quan sát trực tiếp thông báo lỗi hiển thị, xử lý lỗi và sau đó tắt thiết lập này đi.
Tại sao MySQL không cho phép đăng nhập sau khi cài?
Trên nền tảng Ubuntu, mặc định MySQL sử dụng plugin auth_socket cho tài khoản root — tức là cơ chế MySQL sẽ tiến hành xác thực dựa trên tài khoản user Linux đang được login trên shell, bạn hoàn toàn không cần nhập password khi dùng câu lệnh sudo mysql. Đây không phải là một lỗi hệ thống, đây là cơ chế bảo mật chặt chẽ được thiết lập mặc định. Nếu bạn thực sự cần đăng nhập bằng password (ví dụ để cấu hình kết nối database từ ứng dụng PHP bên thứ ba), bạn phải đổi thiết lập sang dạng mysql_native_password:
# Đăng nhập MySQL không cần password (dùng sudo)
sudo mysql
# Đổi auth method của root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
FLUSH PRIVILEGES;
EXIT;
Sau bước thiết lập này, bạn hoàn toàn có thể login bằng lệnh mysql -u root -p và điền password vào bình thường. Tuy nhiên ở môi trường production thực tế, bạn chỉ nên tạo user định danh riêng biệt cho từng ứng dụng nhỏ như đã hướng dẫn kỹ ở trên — đừng lạm dụng sử dụng root trực tiếp.
VPS Giá Rẻ Hiệu Năng Cao — InterData
Cần một VPS Ubuntu đủ mạnh để thực hành setup LEMP Stack ngay? InterData cung cấp dịch vụ VPS tốc độ cao với ổ cứng SSD NVMe U.2, cài sẵn Ubuntu 22.04 / 24.04, và đặc biệt cho phép bạn dùng thử trước khi thanh toán.
✓ SSD NVMe U.2 — I/O cực nhanh, đáp ứng tuyệt vời cho database
✓ Hỗ trợ cài đặt tự động hệ điều hành Ubuntu 22.04 và 24.04 LTS
✓ Đảm bảo backup định kỳ an toàn, đi kèm chính sách dùng thử miễn phí
Câu Hỏi Thường Gặp Khi Cài LEMP Stack Trên Ubuntu VPS
Cài LEMP stack trên Ubuntu 24.04 có khác Ubuntu 22.04 không?
Có một điểm khác biệt chính: Ubuntu 24.04 đã tích hợp sẵn phiên bản PHP 8.3 trong repository mặc định của họ, do đó bạn không cần phải tốn công thêm PPA của ondrej/php. Còn lại — toàn bộ các lệnh cài đặt Nginx, cấu hình MySQL, cũng như tinh chỉnh file server block — đều tuân thủ các câu lệnh giống hệt nhau. Nếu bạn đang chạy bản Ubuntu 24.04, chỉ cần bỏ qua bước chạy lệnh add-apt-repository ppa:ondrej/php và gọi thẳng lệnh apt install php8.3-fpm là được.
Có thể cài nhiều phiên bản PHP cùng lúc trên một VPS không?
Được, và đây là tính năng cực kỳ hữu ích khi bạn phải chạy nhiều project có yêu cầu tương thích version PHP hoàn toàn khác nhau. Sau khi bạn thêm kho PPA ondrej/php, hãy tiến hành chạy lệnh apt install php8.1-fpm php8.3-fpm để hệ thống cài đặt chúng song song. Mỗi một phiên bản sẽ chạy độc lập trên một socket riêng biệt của nó (ví dụ php8.1-fpm.sock, php8.3-fpm.sock). Việc tiếp theo rất đơn giản, trong file Nginx server block của từng website, bạn chỉ cần tinh chỉnh lại mục fastcgi_pass chỉ thẳng về đúng file socket của phiên bản cần dùng là xong.
Sau khi cài LEMP xong, bước tiếp theo để chạy WordPress là gì?
Cần làm 4 việc: tạo database kèm user MySQL dành riêng cho WordPress (chúng tôi đã hướng dẫn kỹ ở phần trên), tiến hành tải mã nguồn WordPress về và giải nén thẳng vào thư mục web root, mở cấu hình file wp-config.php với đúng thông tin database vừa tạo, và bước chốt cuối cùng là điều chỉnh cấu hình Nginx server block cho site WordPress với dòng try_files $uri $uri/ /index.php?$args ngay trong location block. Phần hướng dẫn cài đặt chi tiết dành cho WordPress sẽ được chúng tôi phân tích trong một bài viết riêng biệt.
Tại sao nên dùng PHP-FPM thay vì mod_php cho Nginx?
Nginx không có module hỗ trợ xử lý mã PHP nội bộ như cách Apache đang làm với mod_php — đây chính là điểm khác biệt về mặt kiến trúc cơ bản của hệ thống. Bản thân Nginx chỉ hoàn thành xuất sắc vai trò làm web server, mọi yêu cầu xử lý logic PHP đều phải được pass trực tiếp sang FPM thông qua chuẩn giao thức FastCGI. PHP-FPM (FastCGI Process Manager) được thiết kế chạy độc lập hoàn toàn như một service riêng biệt, làm nhiệm vụ quản lý chặt pool worker process, và thậm chí có thể cấu hình linh hoạt số lượng worker dựa theo mức RAM thực tế — chính kiến trúc phân tách này thực chất mang lại khả năng mở rộng linh hoạt hơn rất nhiều so với dùng mod_php nguyên khối trong các kịch bản chịu tải lớn.
Cần mở port nào trên ufw firewall sau khi cài LEMP stack?
Tối thiểu cần 3 port: 22 (SSH) để duy trì kết nối quản lý server — nhớ thiết lập mở cái này đầu tiên ngay khi chuẩn bị enable ufw nếu không bạn sẽ bị hệ thống lock out ra ngoài; tiếp đến là 80 (HTTP) cho các traffic truy cập web thông thường; và 443 (HTTPS) dành cho lúc setup chứng chỉ SSL an toàn sau này. Lệnh gộp thực thi nhanh: ufw allow OpenSSH && ufw allow 'Nginx Full'. Profile có sẵn mang tên “Nginx Full” của ufw thực tế đã bao gồm tự động cho phép kết nối cả port 80 và 443. Bạn không cần phải mở port MySQL (3306) ra bên ngoài trừ khi thực sự cần cấu hình remote database connection — duy trì trạng thái đóng mặc định luôn là phương án an toàn hơn.
Kết Luận
Cài đặt toàn bộ thành phần Nginx + PHP + MySQL trên hệ điều hành Ubuntu VPS sẽ không gặp vấn đề phức tạp nếu bạn kiên nhẫn làm đúng theo thứ tự: thao tác Nginx trước tiên, setup PHP-FPM sau đó, cấu hình MySQL cuối cùng, rồi mới tiến hành đi sâu cấu hình server block để kết nối cả 3 thành phần rời rạc này lại với nhau.
Hai điểm chí tử mà người mới cấu hình hay vô ý bỏ qua nhất chính là thao tác verify cẩn thận từng service bằng lệnh systemctl status sau khi cài xong, và bắt buộc phải xóa bỏ file info.php ngay sau khi test. Nền tảng LEMP stack cấu hình xong chỉ là phần lõi — bước tiếp theo bạn cần tiến hành hardening server kỹ lưỡng trước khi quyết định đưa website lên production thực tế.
Đây cũng là nội dung nằm trong chuỗi hướng dẫn sử dụng VPS từ A–Z dành cho những quản trị viên mới bắt đầu. Nếu bạn chưa kịp trang bị VPS để thực hành, hãy xem xét các gói dịch vụ VPS giá rẻ tại InterData — nền tảng chuyên nghiệp cho phép bạn sử dụng trải nghiệm trước khi thanh toán.
