Cài Nginx, PHP, MariaDB (LEMP) trên Ubuntu 22.04 để chạy website
Cài LEMP (Linux, Nginx, MariaDB, PHP) trên Ubuntu 22.04 là cách phổ biến để chạy website WordPress, Laravel hay mã nguồn PHP trên VPS với hiệu năng tốt. Bài viết hướng dẫn từng bước từ cài đặt, tạo cơ sở dữ liệu, cấu hình tên miền đến bật HTTPS miễn phí.
Chuẩn bị
- Một VPS chạy Ubuntu 22.04 (khuyến nghị từ 1 GB RAM, nên có 2 GB nếu chạy WordPress).
- Đăng nhập SSH bằng tài khoản root hoặc tài khoản có quyền sudo. Xem hướng dẫn kết nối SSH.
- Một tên miền đã trỏ bản ghi A về IP của VPS (cần cho bước cài HTTPS). Có thể kiểm tra bằng công cụ kiểm tra DNS.
Nên làm các bước bảo mật cơ bản trước, xem bài 10 bước bảo mật VPS Linux.
Bước 1: Cập nhật hệ thống và cài Nginx
apt update && apt upgrade -y
apt install nginx -y
systemctl enable --now nginx
Nếu đang bật tường lửa UFW, mở cổng web:
ufw allow 'Nginx Full'
Mở trình duyệt vào http://IP-VPS, thấy trang "Welcome to nginx!" là thành công.
Bước 2: Cài MariaDB
apt install mariadb-server -y
mysql_secure_installation
Trong trình hỏi đáp: đặt mật khẩu cho root của cơ sở dữ liệu (hoặc giữ đăng nhập bằng unix_socket), xoá người dùng ẩn danh, tắt đăng nhập root từ xa, xoá cơ sở dữ liệu test — chọn Y cho các mục này.
Tạo cơ sở dữ liệu cho website
mysql
CREATE DATABASE web1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'web1user'@'localhost' IDENTIFIED BY 'MatKhauManh!2026';
GRANT ALL PRIVILEGES ON web1.* TO 'web1user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Đổi tên cơ sở dữ liệu, tài khoản và mật khẩu theo ý bạn, ghi lại để dùng khi cài website.
Bước 3: Cài PHP-FPM và các tiện ích thường dùng
Ubuntu 22.04 đi kèm PHP 8.1:
apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl -y
systemctl enable --now php8.1-fpm
Bước 4: Tạo thư mục website và cấu hình Nginx
mkdir -p /var/www/tenmien.com
chown -R www-data:www-data /var/www/tenmien.com
nano /etc/nginx/sites-available/tenmien.com
Dán cấu hình sau (đổi tenmien.com thành tên miền của bạn):
server {
listen 80;
server_name tenmien.com www.tenmien.com;
root /var/www/tenmien.com;
index index.php index.html;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.(?!well-known) {
deny all;
}
}
Bật cấu hình, kiểm tra cú pháp rồi tải lại Nginx:
ln -s /etc/nginx/sites-available/tenmien.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Bước 5: Kiểm tra PHP chạy được
echo '<?php phpinfo();' > /var/www/tenmien.com/info.php
Truy cập http://tenmien.com/info.php, thấy trang thông tin PHP là thành công. Xoá ngay tệp này sau khi kiểm tra vì nó lộ thông tin cấu hình máy chủ:
rm /var/www/tenmien.com/info.php
Bước 6: Bật HTTPS miễn phí với Let's Encrypt
apt install certbot python3-certbot-nginx -y
certbot --nginx -d tenmien.com -d www.tenmien.com
Certbot tự cấp chứng chỉ, sửa cấu hình Nginx để chuyển HTTP sang HTTPS và tự gia hạn trước khi hết hạn. Kiểm tra lịch gia hạn bằng certbot renew --dry-run, và kiểm tra chứng chỉ từ bên ngoài bằng công cụ kiểm tra SSL.
Bước 7: Tải mã nguồn website
Đưa mã nguồn vào /var/www/tenmien.com (qua SFTP, git clone hoặc wget), rồi đặt lại quyền:
chown -R www-data:www-data /var/www/tenmien.com
find /var/www/tenmien.com -type d -exec chmod 755 {} \;
find /var/www/tenmien.com -type f -exec chmod 644 {} \;
Với WordPress, tải bản mới nhất từ wordpress.org, giải nén vào thư mục trên rồi mở tên miền để chạy trình cài đặt, nhập thông tin cơ sở dữ liệu đã tạo ở bước 2.
Câu hỏi thường gặp
Báo lỗi 502 Bad Gateway?
Nginx không kết nối được PHP-FPM. Kiểm tra systemctl status php8.1-fpm và đường dẫn socket trong cấu hình (/run/php/php8.1-fpm.sock) có đúng phiên bản PHP không.
Không tải được tệp lớn?
Tăng client_max_body_size trong Nginx và upload_max_filesize, post_max_size trong /etc/php/8.1/fpm/php.ini, rồi khởi động lại PHP-FPM và Nginx.
Muốn quản lý bằng giao diện thay vì dòng lệnh?
Bạn có thể cài một control panel miễn phí lên VPS, hoặc dùng hosting cPanel nếu chỉ cần chạy website mà không muốn tự quản trị máy chủ.
Kết luận
Với khoảng 15 phút, bạn đã có một máy chủ web LEMP đầy đủ, có HTTPS miễn phí và sẵn sàng chạy WordPress hoặc ứng dụng PHP. Chọn một gói Cloud VPS chạy Ubuntu để bắt đầu.
Bạn thấy bài viết này hữu ích?
Chia sẻ lên Facebook