Cài đặt LEMP Stack (Nginx, PHP và MariaDB) trên Debian 11

theanh

Administrator
Nhân viên
LEMP Stack là một tập hợp các phần mềm nguồn mở và các khuôn khổ hoặc thư viện được sử dụng để lưu trữ các ứng dụng web trên internet. Một stack bao gồm hệ điều hành Linux, máy chủ web Nginx, máy chủ cơ sở dữ liệu MariaDB/MySQL và ngôn ngữ PHP. LEMP có cộng đồng hỗ trợ tốt và được sử dụng trong nhiều ứng dụng web có quy mô lớn trên toàn cầu.

Trong bài đăng này, chúng tôi sẽ chỉ cho bạn cách cài đặt LEMP stack trên Debian 11.

Điều kiện tiên quyết​

  • Một máy chủ đang chạy Debian 11.
  • Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật tất cả các gói bằng lệnh sau:
Mã:
apt-get update -y
Sau khi hệ thống của bạn được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cài đặt Nginx Web Server​

Nginx là một máy chủ web miễn phí và mã nguồn mở, tuân theo kiến trúc hướng sự kiện và có thể xử lý nhiều yêu cầu trong một luồng. Nó tương thích với các ứng dụng thường dùng và được sử dụng để phục vụ các tệp tĩnh.

Theo mặc định, gói Nginx được bao gồm trong kho lưu trữ mặc định của Debian 11. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
apt-get install nginx -y
Sau khi Nginx được cài đặt, hãy khởi động dịch vụ Nginx và cho phép nó khởi động khi khởi động lại hệ thống:
Mã:
systemctl start nginx
systemctl enable nginx
Bạn cũng có thể xác minh phiên bản Nginx đã cài đặt bằng lệnh sau:
Mã:
nginx -v
Bạn sẽ thấy đầu ra sau:
Mã:
nginx version: nginx/1.18.0
Theo mặc định, Nginx chạy trên cổng 80. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -antpl | grep nginx
Bạn sẽ thấy kết quả sau:
Mã:
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=44342,fd=8),("nginx",pid=44341,fd=8))LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=44342,fd=9),("nginx",pid=44341,fd=9))
Bạn cũng có thể kiểm tra cài đặt Nginx bằng URL http://your-server-ip. Bạn sẽ thấy trang kiểm tra Nginx trên trang sau:



Lúc này, máy chủ web Nginx đã được cài đặt. Bây giờ bạn có thể tiến hành bước tiếp theo.

Cài đặt MariaDB Database Server​

MariaDB là một cơ sở dữ liệu mã nguồn mở dựa trên SQL được sử dụng để lưu trữ và quản lý dữ liệu cho các trang web. Theo mặc định, gói MariaDB được bao gồm trong kho lưu trữ mặc định của Debian 11. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
apt-get install mariadb-server -y
Sau khi máy chủ cơ sở dữ liệu MariaDB được cài đặt, hãy khởi động dịch vụ MariaDB và cho phép nó khởi động khi khởi động lại hệ thống:
Mã:
systemctl start mariadb
systemctl enable mariadb
Bạn cũng có thể kiểm tra trạng thái của dịch vụ MariaDB bằng lệnh sau:
Mã:
systemctl status mariadb
Bạn sẽ thấy đầu ra sau:
Mã:
? mariadb.service - Máy chủ cơ sở dữ liệu MariaDB 10.3.31 Đã tải: đã tải (/lib/systemd/system/mariadb.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Sat 2021-08-21 04:13:25 UTC; 1 phút 36 giây trước Tài liệu: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ PID chính: 1838 (mysqld) Trạng thái: "Đang tiếp nhận yêu cầu SQL của bạn ngay..." Nhiệm vụ: 31 (giới hạn: 2353) Bộ nhớ: 66,1M CGroup: /system.slice/mariadb.service ??1838 /usr/sbin/mysqld
Bạn cũng nên bảo mật cài đặt MariaDB của mình và đặt mật khẩu gốc MariaDB. Bạn có thể chạy tập lệnh mysql_secure_installation để bảo mật cài đặt MariaDB:
Mã:
mysql_secure_installation
Bạn sẽ được yêu cầu đặt mật khẩu gốc MariaDB, xóa người dùng ẩn danh, không cho phép đăng nhập gốc từ xa và Xóa cơ sở dữ liệu thử nghiệm như được hiển thị bên dưới:
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có):Đổi mật khẩu gốc? [C/N] CMật khẩu mới:Nhập lại mật khẩu mới:Xóa người dùng ẩn danh? [C/N] CKhông cho phép đăng nhập gốc từ xa? [C/N] CXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [C/N] CTải lại bảng đặc quyền ngay bây giờ? [C/N] C
Theo mặc định, MariaDB chạy trên cổng 3306. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -antpl | grep mariadb
Bạn sẽ thấy lệnh sau:
Mã:
LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* users:(("mariadbd",pid=12181,fd=15))
Để kết nối shell MariaDB, hãy chạy lệnh sau:
Mã:
mysql -u root -p
Cung cấp mật khẩu root MariaDB của bạn và nhấn Enter để kết nối với shell MariaDB. Sau khi kết nối, bạn sẽ thấy đầu ra sau:
Mã:
Nhập mật khẩu:Chào mừng đến với màn hình MariaDB. Các lệnh kết thúc bằng ; hoặc \g.ID kết nối MariaDB của bạn là 64Phiên bản máy chủ: 10.5.11-MariaDB-1 Debian 11Bản quyền (c) 2000, 2018, Oracle, MariaDB Corporation Ab và những bên khác.Gõ 'help;' hoặc '\h' để được trợ giúp. Gõ '\c' để xóa câu lệnh nhập hiện tại.
Bây giờ, hãy chạy lệnh sau để kiểm tra phiên bản MariaDB:
Mã:
MariaDB [(none)]> SELECT VERSION();
Bạn sẽ thấy đầu ra sau:
Mã:
+-------------------+| VERSION() |+-------------------+| 10.5.11-MariaDB-1 |+-------------------+1 hàng trong tập hợp (0,001 giây)
Tại thời điểm này, máy chủ cơ sở dữ liệu MariaDB đã được cài đặt và bảo mật. Bây giờ bạn có thể tiến hành bước tiếp theo.

Cài đặt Ngôn ngữ PHP​

PHP là viết tắt của Hypertext Preprocessor và là ngôn ngữ kịch bản được sử dụng ở phía máy chủ. Đây là ngôn ngữ mã nguồn mở, có cộng đồng hỗ trợ lớn và được sử dụng để lưu trữ các ứng dụng PHP trên internet.

Theo mặc định, phiên bản PHP có sẵn trong Debian 11 là PHP 7.4. Bạn có thể cài đặt PHP với các tiện ích mở rộng thường dùng khác bằng lệnh sau:
Mã:
apt-get install php php-fpm php-cli php-mysql php-zip php-curl php-xml -y
Sau khi cài đặt PHP, hãy xác minh phiên bản PHP bằng lệnh sau:
Mã:
php -v
Bạn sẽ thấy kết quả sau:
Mã:
PHP 7.4.21 (cli) (được xây dựng: 02/07/2021 03:59:48) (NTS)Bản quyền (c) The PHP GroupZend Engine v3.4.0, Bản quyền (c) Zend Technologies với Zend OPcache v7.4.21, Bản quyền (c), của Zend Technologies

Tạo Virtual Host cho Nginx​

Tại đây, chúng ta sẽ tạo một thư mục example.com để lưu trữ một trang PHP. Bạn có thể tạo nó bằng lệnh sau:
Mã:
mkdir /var/www/html/example.com
Tiếp theo, đặt quyền sở hữu của thư mục example.com thành www-data:
Mã:
chown -R www-data:www-data /var/www/html/example.com
Tiếp theo, tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/example.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name example.com; root /var/www/html/example.com; index index.php; access_log /var/log/nginx/example_access.log; error_log /var/log/nginx/example_error.log; client_max_body_size 100M; vị trí / { try_files $uri $uri/ /index.php$is_args$args; } vị trí ~ \.php$ { try_files $uri =404; bao gồm fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }}
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cấu hình nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ thấy kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart nginx
Bạn cũng có thể kiểm tra trạng thái của dịch vụ Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: hoạt động (đang chạy) từ Sat 2021-08-21 04:37:27 UTC; 5 giây trước Tài liệu: man:nginx(8) PID chính: 4378 (nginx) Nhiệm vụ: 2 (giới hạn: 2353) Bộ nhớ: 6,2M CGroup: /system.slice/nginx.service ??4378 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??4379 nginx: tiến trình công nhân21 tháng 8 04:37:27 debian11 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...21 tháng 8 04:37:27 debian11 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.

Xác minh cài đặt PHP trên Nginx​

Tiếp theo, bạn sẽ cần tạo một tệp PHP mẫu để phục vụ trên máy chủ web Nginx. Bạn có thể tạo tệp phpinfo.php bên trong thư mục example.com của mình:
Mã:
nano /var/www/html/example.com/phpinfo.php
Thêm dòng sau:
Mã:
Lưu và đóng tệp, sau đó mở trình duyệt web và truy cập trang PHP của bạn bằng URL http://example.com/phpinfo.php. Bạn sẽ thấy trang PHP của mình trong màn hình sau:

Kết luận​

Trong hướng dẫn trên, chúng tôi đã giải thích cách cài đặt ngăn xếp LEMP trên Debian 11. Bây giờ bạn có thể bắt đầu lưu trữ trang web đầu tiên của mình bằng ngăn xếp LEMP. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên