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.
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.
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:
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:
Bạn cũng có thể xác minh phiên bản Nginx đã cài đặt bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Theo mặc định, Nginx chạy trên cổng 80. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
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.
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:
Bạn cũng có thể kiểm tra trạng thái của dịch vụ MariaDB bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
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:
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:
Theo mặc định, MariaDB chạy trên cổng 3306. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ thấy lệnh sau:
Để kết nối shell MariaDB, hãy chạy lệnh sau:
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:
Bây giờ, hãy chạy lệnh sau để kiểm tra phiên bản MariaDB:
Bạn sẽ thấy đầu ra sau:
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.
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:
Sau khi cài đặt PHP, hãy xác minh phiên bản PHP bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Tiếp theo, đặt quyền sở hữu của thư mục example.com thành www-data:
Tiếp theo, tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Thêm các dòng sau:
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:
Bạn sẽ thấy kết quả sau:
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi cấu hình:
Bạn cũng có thể kiểm tra trạng thái của dịch vụ Nginx bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Thêm dòng sau:
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:
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
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
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
nginx -v
Mã:
nginx version: nginx/1.18.0
Mã:
ss -antpl | grep nginx
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))
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
Mã:
systemctl start mariadb
systemctl enable mariadb
Mã:
systemctl status mariadb
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
Mã:
mysql_secure_installation
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
Mã:
ss -antpl | grep mariadb
Mã:
LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* users:(("mariadbd",pid=12181,fd=15))
Mã:
mysql -u root -p
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.
Mã:
MariaDB [(none)]> SELECT VERSION();
Mã:
+-------------------+| VERSION() |+-------------------+| 10.5.11-MariaDB-1 |+-------------------+1 hàng trong tập hợp (0,001 giây)
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
Mã:
php -v
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
Mã:
chown -R www-data:www-data /var/www/html/example.com
Mã:
nano /etc/nginx/conf.d/example.conf
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; }}
Mã:
nginx -t
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
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
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
Mã: