Hướng dẫn cài đặt Nginx, MariaDB và PHP (LEMP) trên Debian 11
Bạn không sử dụng Debian 11?
Xem bài viết cho các distro khácGiới thiệu
Nginx là một webserver mã nguồn mở mạnh mẽ và nổi tiếng phục vụ web HTTP. Sử dụng kiến thức đơn luồng (event-driven), không đồng bộ (asynchronous) để website có hiệu suất và sự ổn định tối đa.
MariaDB là hệ quản trị cơ sở dữ liệu mã nguồn mở (DBMS) được phát triển bởi các nhà sáng lập MySQL. Được phát hành lần đầu vào năm 2009.
PHP (Hypertext Preprocessor) là ngôn ngữ lập trình hướng đối tượng được sử dụng cho máy chủ web.
Bài viết này sẽ hướng dẫn cài đặt Nginx, MariaDB và PHP (viết tắt là LEMP) trên Debian 11.
Yêu cầu thiết yếu
Để thực hiện được các hướng dẫn này, chúng ta cần các yêu cầu sau:
- Máy chủ sử dụng: Debian 11
- Tài khoản người dùng: Có quyền truy cập sudo hoặc root
Bước 1: Cài đặt Nginx
Chúng ta cần cập nhật hệ điều hành Debian 11 để đảm bảo các gói hiện có được cập nhật lên phiên bản mới nhất:
Sau khi cập nhật xong các gói tin cần thiết trên Debian 11 chúng ta thực thi lệnh bên dưới để cài đặt nginx
:
Sau khi lệnh cài đặt hoàn thành chúng ta có thể thực thi lệnh sau để kiểm tra xem nginx đã được cài đặt thành công trên Debian 11 hay chưa:
Phiên bản hiện tại của nginx tại thời điểm mình viết bài này là 1.18.0:
Truy cập trình duyệt bằng IP máy chủ của chúng ta để kiểm tra:
Bước 2: Cài đặt và Cấu hình firewall
Đầu tiên, chúng ta cài đặt các phụ thuộc cần thiết cho csf
:
Bây giờ, hãy đảm bảo rằng không có tường lửa nào khác đang chạy trên hệ thống của chúng ta. Vì vậy, hãy tắt tường lửa đang chạy trên hệ thống (nếu có):
Tiếp theo, chúng ta tải xuống source code csf
bằng wget:
Bây giờ chúng ta hãy giải nén file vừa tải về bằng lệnh sau:
Sau khi quá trình giải nén hoàn thành, chúng ta di chuyển vào thư mục csf
vừa giải nén:
Tiến hành cài đặt csf
bằng lệnh:
Sau khi kết thúc lệnh cài đặt, chúng ta hãy khởi động dịch vụ csf
:
Ngoài ra, chúng ta cũng nên chạy perl
để kiểm tra xem csf
đã được cài đặt thành công chưa:
Bây giờ, chúng ta hãy kích hoạt csf
khởi động cùng hệ thống bằng lệnh:
Chỉnh sửa file csf.conf
tại /etc/csf/csf.conf
:
- Thay TESTING = "1" thành "0"
- Thay RESTRICT_SYSLOG = "0" thành "1"
- Thêm các port
TCP_IN
vàTCP_OUT
cần thiết cho server. Ở bài hướng dẫn này chúng ta cần có các ports 80, 443
Sau khi hoàn tất cấu hình mọi thứ, chúng ta hãy thực hiện lệnh sau để áp dụng các thay đổi:
Bước 3: Tạo virtualhost cho Nginx
Đầu tiên, chúng ta cần tạo user cho mỗi trang web của chúng ta, phân quyền và chỉ định nhóm người dùng tương ứng cho các user:
Tiếp theo, chúng ta cần tạo 2 thư mục chứa mã nguồn cho 2 website của mình bằng lệnh:
Sau khi tạo xong user và thư mục chứa mã nguồn cho website, chúng ta phân quyền user cho thư mục web tương ứng:
Phân quyền này sẽ làm user website1 không thể xem hay can thiệp được vào dữ liệu user website2 (không có quyền)
Bây giờ, chúng ta hãy tạo trang index.html
đầu tiên cho 2 website:
Thêm nội dung sau đây vào file index.html
:
Thêm nội dung sau đây vào file index.html
:
Tiếp theo, chúng ta cần cấu hình virtualhosts cho 2 website vừa tạo. Để có nội dung file virtualhosts mặc định cho 2 site your-domain-1.com.vn
và your-domain-2.com.vn
, chúng ta cần coppy nội dung virtualhosts từ file default :
Và bây giờ, chúng ta chỉnh sửa nội dung cấu hình virtualhosts cho 2 website bằng cách sử dụng trình soạn thảo linux bất kì để chỉnh sửa file /etc/nginx/sites-available/your-domain-1.com.vn.conf
và /etc/nginx/sites-available/your-domain-2.com.vn.conf
như sau:
- Chỉnh sửa file
/etc/nginx/sites-available/your-domain-1.com.vn.conf
- Chỉnh sửa file
/etc/nginx/sites-available/your-domain-2.com.vn.conf
Trong đó:
listen
: port máy chủ đang sử dụngroot
: đường dẫn chứa mã nguồnserver_name
: Tên websitefastcgi_pass
: Đường dẫn của file sock php-fpm
Sau khi chỉnh sửa xong nội dung file virtualhosts của 2 website your-domain-1.com.vn
và your-domain-2.com.vn
, chúng ta hãy tạo liên kết tượng trưng file virtualhosts này sang /etc/nginx/sites-enable bằng lệnh:
Tiếp theo, chúng ta hãy kiểm tra để đảm bảo rằng không có lỗi cú pháp trong bất kì file nào trên service bằng lệnh:
Nếu không có bất kì lỗi nào được thông báo, chúng ta hãy khởi động lại nginx để kích hoạt các thay đổi:
Truy cập trình duyệt để kiểm tra xem website của chúng ta đã hoạt động chưa (chúng ta có thể trỏ file host website của mình về địa chỉ IP VPS để kiểm tra bằng cách làm theo hướng dẫn tại đây):
Bước 4: Cài đặt MariaDB
Đầu tiên, chúng ta cần cập nhật hệ điều hành Debian 11 để đảm bảo các gói hiện có đều được cập nhật lên phiên bản mới nhất:
Nhập kho lưu trữ MariaDB 10.7
:
Cài đặt MariaDB 10.7
:
Sau khi lệnh cài đặt hoàn thành, chúng ta có thể sử dụng lệnh sau để kiểm tra MariaDB đã được cài đặt thành công chưa:
Bước 5: Cấu hình bảo mật cho MariaDB
Sau khi đã cài đặt thành công MariaDB, chúng ta có thể cấu hình bảo mật cho MariaDB:
Bây giờ, chúng ta có thể đăng nhập vào MariaDB để tạo cơ sở dữ liệu cho riêng mình bằng lệnh sau:
Bước 6: Cài đặt PHP
Đầu tiên, chúng ta cần cài đặt kho lưu trữ PHP và cập nhật kho lưu trữ APT
:
Sau khi cài đặt kho lưu trữ xong bây giờ chúng ta có thể cài đặt PHP bằng lệnh sau:
Bây giờ, chúng ta có thể kiểm tra xem PHP đã được cài đặt thành công chưa bằng lệnh:
6.1. Cấu hình php-fpm
Bây giờ, chúng ta coppy pool php mặc định cho 2 website của mình:
Tiếp theo, chúng ta cần truy cập vào file fpm-your-domain-1.com.vn.conf (tại /etc/php/8.1/fpm/pool.d/fpm-your-domain-1.com.vn.conf
) và fpm-your-domain-2.com.vn.conf (tại /etc/php/8.1/fpm/pool.d/fpm-your-domain-2.com.vn.conf
) để chỉnh sửa các thông tin sau:
Sau khi hoàn thành các bước cấu hình, chúng ta khởi động lại php-fpm và kiểm tra trạng thái php-fpm
Bây giờ, chúng ta hãy khởi động lại nginx và truy cập trình duyệt web kiểm tra kết quả:
Website 1: ![website1](https://123host.vn/uploads/tutorial/5378538416.png Website 2:
6.2. Hướng dẫn tạo file info.php để kiểm tra thông tin PHP
Đầu tiên, chúng ta cần di chuyển đến thư mục public_html của mã nguồn website1:
Chúng ta sử dụng trình soạn thảo bất kì để tạo file info.php
và thêm nội dung sau vào file info.php
:
Tiếp theo, chúng ta di chuyển đến thư mục public_html của mã nguồn website2:
Chúng ta sử dụng trình soạn thảo bất kì để tạo file info.php
và thêm nội dung sau vào file info.php
:
Bây giờ, chúng ta hãy khởi động lại nginx và truy cập trình duyệt web kiểm tra kết quả:
Bây giờ chúng ta truy cập trình duyệt và kiểm tra trang PHP information cho mỗi trang web. Tại phần PHP Variables, $ _SERVER ['USER'] phải là website1 cho website1 và website2 cho website2 và đường dẫn thư mục gốc của website1 là $ _SERVER ['HOME']: /home/website1, của website2 là $ _SERVER ['HOME']: /home/website2:
Thông tin php info website 1: Thông tin php info website 2:
Bước 7: Cài đặt và cấu hình Let's Encrypt
Đầu tiên, chúng ta cần cài thư viện certbot cho nginx để có thể cài đặt và cấu hình Let's Encrypt bằng lệnh sau:
Sau khi cài đặt certbot thành công, chúng ta hãy cài đặt và cấu hình Let's Encrypt
cho website bằng lệnh sau:
Tổng kết
Như vậy, qua bài viết này chúng ta đã biết cách cài đặt Nginx, MariaDB, PHP,cấu hình Virtualhost cho Nginx, cài đặt Let's Encrypt trên Debian 11 hoàn tất một cách đầy đủ nhất. Hy vọng bài viết này sẽ giúp bạn cài đặt thành công!
Tính năng đang được phát triển