Đang tải…
Flag
VN Tiếng Việt
EN English
ZH 简体中文
KO 한국어
JA 日本語
Dùng thử VPS

Cài Nginx, PHP, MariaDB (LEMP) trên Ubuntu 22.04 để chạy website

Hướng dẫn 2026-11-05 23:03:15 2 lượt xem

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

Liên hệ hỗ trợ

Chọn kênh liên hệ phù hợp với bạn

Đang trực tuyến

Telegram

Nhắn tin nhanh qua Telegram

Zalo

Zalo

Chat trực tiếp qua Zalo