Chào bạn, nếu bạn đang muốn xây dựng một website mạnh mẽ, hiệu suất cao trên nền tảng Linux, thì LEMP Stack chính là một bộ công cụ “vàng” mà bạn nên làm quen. LEMP là một tập hợp các phần mềm mã nguồn mở phổ biến, kết hợp với nhau để tạo thành một môi trường hoàn chỉnh cho việc phát triển và triển khai website động. Trong bài viết này, chúng ta sẽ cùng nhau khám phá LEMP Stack là gì và cách cài đặt nó trên hệ điều hành Ubuntu một cách chi tiết nhất nhé!
LEMP Stack là gì? Các thành phần cơ bản
LEMP là một từ viết tắt, trong đó mỗi chữ cái đại diện cho một thành phần chính:
- Linux: Hệ điều hành nền tảng. Trong trường hợp này, chúng ta sẽ sử dụng Ubuntu, một bản phân phối Linux phổ biến và thân thiện với người dùng.
- ENginx (đọc là “engine-x”): Web server. Nginx là một web server nhẹ, hiệu suất cao, nổi tiếng với khả năng xử lý đồng thời nhiều kết nối một cách hiệu quả.
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). MySQL (hoặc MariaDB, một nhánh mã nguồn mở của MySQL) được sử dụng để lưu trữ và quản lý dữ liệu của website.
- PHP: Ngôn ngữ lập trình kịch bản phía máy chủ. PHP được sử dụng để tạo ra các trang web động, tương tác với cơ sở dữ liệu và xử lý dữ liệu người dùng.
LEMP Stack là một lựa chọn phổ biến để triển khai các ứng dụng web viết bằng PHP như WordPress, Joomla, Drupal, Magento và nhiều framework PHP khác.
Tại sao nên sử dụng LEMP Stack? Ưu điểm nổi bật
LEMP Stack mang lại nhiều ưu điểm vượt trội, khiến nó trở thành một lựa chọn hàng đầu cho các nhà phát triển và quản trị viên website:
- Hiệu suất cao: Nginx nổi tiếng với khả năng xử lý lượng lớn truy cập đồng thời với mức tiêu thụ tài nguyên thấp hơn so với Apache (một web server phổ biến khác). Điều này giúp website của bạn tải nhanh hơn và hoạt động ổn định hơn, đặc biệt trong các tình huống có lượng truy cập lớn.
- Linh hoạt và tùy biến: Các thành phần của LEMP Stack đều là mã nguồn mở, cho phép bạn tùy chỉnh và cấu hình chúng theo nhu cầu cụ thể của dự án.
- Bảo mật: Nginx và MySQL đều có các tính năng bảo mật mạnh mẽ, và việc triển khai trên nền tảng Linux vốn đã được đánh giá cao về tính bảo mật.
- Cộng đồng hỗ trợ lớn: Ubuntu, Nginx, MySQL và PHP đều có cộng đồng người dùng và nhà phát triển rất lớn trên toàn thế giới. Bạn có thể dễ dàng tìm kiếm sự trợ giúp, tài liệu hướng dẫn và các giải pháp cho các vấn đề có thể phát sinh.
- Miễn phí: Tất cả các thành phần của LEMP Stack đều là miễn phí và mã nguồn mở, giúp bạn tiết kiệm chi phí đáng kể so với việc sử dụng các phần mềm thương mại.

Hướng dẫn chi tiết cách cài đặt LEMP Stack trên Ubuntu
Bây giờ, chúng ta sẽ đi vào phần quan trọng nhất: hướng dẫn từng bước cách cài đặt LEMP Stack trên hệ điều hành Ubuntu.
Bước 1: Cập nhật hệ thống
Trước khi cài đặt bất kỳ phần mềm mới nào, bạn nên cập nhật danh sách các gói phần mềm và nâng cấp các gói đã cài đặt lên phiên bản mới nhất. Mở terminal và chạy các lệnh sau:
Bash
sudo apt update
sudo apt upgrade
Lệnh sudo cho phép bạn thực hiện các lệnh với quyền quản trị (root). Lệnh apt update sẽ tải xuống thông tin về các gói phần mềm có sẵn, và lệnh apt upgrade sẽ cài đặt các phiên bản mới nhất của các gói đã được cài đặt trên hệ thống của bạn.
Bước 2: Cài đặt Nginx
Để cài đặt Nginx web server, hãy chạy lệnh sau trong terminal:
Bash
sudo apt install nginx
Trong quá trình cài đặt, bạn có thể được hỏi xác nhận. Hãy nhập Y và nhấn Enter để tiếp tục.
Sau khi cài đặt xong, bạn có thể kiểm tra xem Nginx đã hoạt động hay chưa bằng cách truy cập địa chỉ IP của máy chủ Ubuntu của bạn trên trình duyệt web. Nếu bạn thấy trang chào mừng mặc định của Nginx, điều đó có nghĩa là Nginx đã được cài đặt thành công.
Bạn cũng có thể quản lý dịch vụ Nginx bằng các lệnh sau:
- Khởi động Nginx: sudo systemctl start nginx
- Dừng Nginx: sudo systemctl stop nginx
- Khởi động lại Nginx: sudo systemctl restart nginx
- Kiểm tra trạng thái Nginx: sudo systemctl status nginx
- Bật Nginx tự động khởi động cùng hệ thống: sudo systemctl enable nginx
Bước 3: Cài đặt MySQL (hoặc MariaDB)
Tiếp theo, chúng ta sẽ cài đặt hệ quản trị cơ sở dữ liệu. Bạn có thể chọn cài đặt MySQL hoặc MariaDB (một nhánh mã nguồn mở được cộng đồng phát triển). MariaDB thường được khuyến nghị vì nó là bản thay thế trực tiếp và tương thích ngược với MySQL, đồng thời thường được tích hợp tốt hơn với các bản phân phối Linux hiện đại.
Để cài đặt MariaDB, hãy chạy lệnh sau:
Bash
sudo apt install mariadb-server
Trong quá trình cài đặt, bạn sẽ được yêu cầu đặt mật khẩu cho tài khoản root của MariaDB. Hãy chọn một mật khẩu mạnh và ghi nhớ nó.
Sau khi cài đặt xong, bạn nên chạy script bảo mật được cung cấp bởi MariaDB để cấu hình các tùy chọn bảo mật cơ bản. Chạy lệnh sau:
Bash
sudo mysql_secure_installation
Bạn sẽ được hỏi một số câu hỏi. Hãy trả lời chúng theo hướng dẫn (thường bạn nên trả lời “Y” cho hầu hết các câu hỏi).
Bạn cũng có thể quản lý dịch vụ MariaDB bằng các lệnh tương tự như Nginx:
- Khởi động MariaDB: sudo systemctl start mariadb
- Dừng MariaDB: sudo systemctl stop mariadb
- Khởi động lại MariaDB: sudo systemctl restart mariadb
- Kiểm tra trạng thái MariaDB: sudo systemctl status mariadb
- Bật MariaDB tự động khởi động cùng hệ thống: sudo systemctl enable mariadb
Bước 4: Cài đặt PHP và các module cần thiết
Cuối cùng, chúng ta sẽ cài đặt PHP và một số module PHP thường được sử dụng bởi các ứng dụng web. Chúng ta sẽ cài đặt PHP-FPM (FastCGI Process Manager), một trình xử lý PHP được khuyên dùng khi sử dụng với Nginx.
Chạy lệnh sau để cài đặt PHP-FPM và các module phổ biến:
Bash
sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
Bạn có thể cài đặt thêm các module PHP khác tùy thuộc vào yêu cầu của ứng dụng web bạn muốn chạy. Chỉ cần thay thế php-tên-module vào lệnh trên.
Sau khi cài đặt xong, PHP-FPM sẽ tự động khởi động. Bạn có thể quản lý dịch vụ PHP-FPM bằng các lệnh tương tự như Nginx và MariaDB (thay php-fpm vào tên dịch vụ).
Bước 5: Cấu hình Nginx để xử lý file PHP
Sau khi đã cài đặt tất cả các thành phần, bạn cần cấu hình Nginx để nó có thể xử lý các file PHP bằng cách chuyển chúng đến PHP-FPM.
- Tạo một block server (tương tự như virtual host trong Apache) cho website của bạn. Bạn có thể tạo một file mới trong thư mục /etc/nginx/sites-available/, ví dụ: yourdomain.conf, và thêm cấu hình sau (thay yourdomain.com bằng tên miền của bạn và /var/www/yourdomain bằng đường dẫn đến thư mục chứa mã nguồn website):
Nginx
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Thay đổi đường dẫn socket PHP-FPM nếu cần
}
location ~ /\.ht {
deny all;
}
}
Lưu ý: Đường dẫn socket của PHP-FPM có thể khác nhau tùy thuộc vào phiên bản PHP bạn đã cài đặt. Bạn có thể kiểm tra bằng lệnh sudo systemctl status php*-fpm.
- Tạo một symbolic link từ file cấu hình trong /etc/nginx/sites-available/ đến thư mục /etc/nginx/sites-enabled/ để kích hoạt nó:
Bash
sudo ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/
- Bạn nên tắt cấu hình default của Nginx nếu bạn chỉ muốn chạy website của mình:
Bash
sudo rm /etc/nginx/sites-enabled/default
- Kiểm tra cấu hình 1 Nginx để đảm bảo không có lỗi:
- 1. pixelspress.com
- pixelspress.com
Bash
sudo nginx -t
- Khởi động lại Nginx để áp dụng các thay đổi:
Bash
sudo systemctl restart nginx
Bước 6: Tạo một file PHP đơn giản để kiểm tra

Để đảm bảo mọi thứ đã được cài đặt và cấu hình đúng cách, bạn có thể tạo một file PHP đơn giản trong thư mục web root của bạn (ví dụ: /var/www/yourdomain/). Tạo một file tên là info.php và thêm nội dung sau:
PHP
<?php
phpinfo();
?>
Lưu file này và truy cập yourdomain.com/info.php trên trình duyệt web của bạn. Nếu bạn thấy trang thông tin PHP, điều đó có nghĩa là LEMP Stack đã được cài đặt thành công trên Ubuntu của bạn!
Các bước cấu hình cơ bản sau khi cài đặt LEMP Stack
Sau khi cài đặt LEMP Stack, bạn có thể cần thực hiện thêm một số cấu hình cơ bản tùy thuộc vào nhu cầu của bạn:

- Bảo mật MySQL/MariaDB: Chạy lại sudo mysql_secure_installation để thiết lập các tùy chọn bảo mật như vô hiệu hóa đăng nhập root từ xa, xóa tài khoản người dùng ẩn danh, v.v.
- Cấu hình Firewall: Sử dụng ufw hoặc firewalld để chỉ cho phép các kết nối cần thiết đến máy chủ của bạn (ví dụ: cổng 80 cho HTTP, cổng 443 cho HTTPS, cổng 22 cho SSH).
- Tải mã nguồn website lên server: Sử dụng các công cụ như scp hoặc một FTP client để tải các file website của bạn lên thư mục web root đã cấu hình.
Kết luận
Chúc mừng bạn đã cài đặt thành công LEMP Stack trên Ubuntu! Đây là một nền tảng mạnh mẽ và linh hoạt cho việc triển khai website của bạn. Với Nginx, MySQL (hoặc MariaDB) và PHP, bạn đã có trong tay những công cụ hàng đầu để xây dựng và quản lý các ứng dụng web hiệu suất cao. Hãy tiếp tục khám phá và tùy chỉnh LEMP Stack để phù hợp với mọi nhu cầu phát triển web của bạn nhé!