Cài đặt LAMP trên Debian 11 - Install LAMP on Debian 11

Trong hướng dẫn này, bạn sẽ install LAMP Debian 11, sử dụng MariaDB là hệ thống quản lý cơ sở dữ liệu.

LAMP stack là một nhóm phần mềm mã nguồn mở thường được cài đặt cùng nhau để cho phép một máy chủ lưu trữ các trang web động và ứng dụng web. Thuật ngữ này là một viết tắt đại diện cho hệ điều hành Linux, với máy chủ web Apache. Dữ liệu trang web được lưu trữ trong cơ sở dữ liệu MariaDB và nội dung động được xử lý bởi PHP.

Mặc dù phần mềm stack này thường bao gồm MySQL là hệ thống quản lý cơ sở dữ liệu, một số phân phối Linux (bao gồm Debian) - sử dụng MariaDB như một phần thay thế cho MySQL.

Yêu cầu đầu tiên trước khi install LAMP Debian 11

Để thực hiện hướng dẫn này, bạn sẽ cần một máy chủ Debian 11 với một tài khoản người dùng có quyền sudo đã được bật và một tường lửa cơ bản. 

Cách install LAMP Debian 11

Bước 1: Cài đặt Apache và cập nhật tường lửa

Apache là thành phần đầu tiên mà chúng ta cần cài đặt khi bắt tay vào install LAMP Debian 11. Máy chủ web Apache là một trong những máy chủ web phổ biến nhất trên thế giới. Nó được có rất nhiều tài liệu, có một cộng đồng người dùng hoạt động tích cực và đã được sử dụng rộng rãi trong suốt lịch sử của web. Điều này khiến Apache trở thành một lựa chọn tốt cho việc lưu trữ một trang web.

Bắt đầu bằng việc cập nhật bộ nhớ cache của trình quản lý gói. Nếu đây là lần đầu bạn sử dụng sudo trong phiên làm việc này, bạn sẽ được nhắc nhập mật khẩu của người dùng để xác nhận rằng bạn có quyền quản lý các gói hệ thống bằng apt:

$ sudo apt update

Sau đó, cài đặt Apache bằng lệnh sau:

$ sudo apt install apache2

Lệnh này sẽ yêu cầu bạn xác nhận việc cài đặt Apache. Xác nhận bằng cách gõ "Y", sau đó nhấn ENTER. Sau khi cài đặt hoàn tất, bạn cần điều chỉnh cài đặt tường lửa của mình. Giả sử bạn đã tuân theo hướng dẫn cài đặt máy chủ ban đầu để cài đặt và kích hoạt tường lửa UFW, hãy đảm bảo rằng tường lửa của bạn cho phép lưu lượng HTTP và HTTPS.

Trên Debian 11, UFW có sẵn các cấu hình ứng dụng mà bạn có thể sử dụng để điều chỉnh cài đặt tường lửa của mình. Xem danh sách đầy đủ các cấu hình ứng dụng bằng cách chạy:

$ sudo ufw app list

Các hồ sơ "WWW" được liệt kê để quản lý các cổng sử dụng bởi máy chủ web:

Output
Available applications:
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .

Nếu bạn kiểm tra hồ sơ "WWW Full" bằng lệnh ufw app info, đầu ra của bạn sẽ cho thấy nó cho phép lưu lượng truy cập vào cổng 80 và 443:

$ sudo ufw app info "WWW Full"
Output
Profile: WWW Full
Title: Web Server (HTTP,HTTPS)
Description: Web Server (HTTP,HTTPS)

Ports:
80,443/tcp

Tiếp theo, cho phép lưu lượng truy cập HTTP và HTTPS đến cho hồ sơ này:

$ sudo ufw allow in "WWW Full"

Bạn có thể xác minh rằng mọi thứ đã diễn ra theo kế hoạch bằng cách truy cập địa chỉ IP công cộng của máy chủ trong trình duyệt web của bạn:

http://your_server_ip

Điều này sẽ trả về trang web mặc định của Apache trên Debian 11, được hiển thị cho mục đích cung cấp thông tin và kiểm tra:

Cài đặt LAMP trên Debian 11 - Install LAMP Debian 11

Nếu trình duyệt của bạn trả về trang này thì máy chủ web hiện đã được cài đặt chính xác và có thể truy cập thông qua tường lửa.

Cách tìm địa chỉ IP công cộng của máy chủ của bạn:

Nếu bạn không biết địa chỉ IP công cộng của máy chủ là gì thì có một số cách mà bạn có thể thực hiện. Thông thường, đây là địa chỉ mà bạn sử dụng để kết nối vào máy chủ thông qua SSH.

Có một vài cách khác nhau để làm điều này từ dòng lệnh. Trước hết, bạn có thể sử dụng các công cụ iproute2 để lấy địa chỉ IP bằng cách chạy lệnh sau:

$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Lệnh này sẽ trả về hai hoặc ba dòng kết quả. Tất cả đều là địa chỉ đúng nhưng máy tính của bạn có thể chỉ sử dụng một trong số đó, vì vậy hãy thử từng địa chỉ một.

Một phương pháp thay thế là sử dụng tiện ích curl để liên hệ với một bên ngoài và yêu cầu họ cho bạn biết họ thấy máy chủ của bạn như thế nào. Bạn có thể chạy lệnh sau và hỏi một máy chủ cụ thể về địa chỉ IP:

$ curl http://icanhazip.com

Dù áp dụng bất kể phương pháp nào, hãy ghi địa chỉ IP của bạn vào trình duyệt web để xác minh rằng máy chủ đang chạy trang web Apache mặc định.

Bước 2: Cài đặt MariaDB

MariaDB là một thành phần không thể thiếu trong LAMP, install LAMP Debian 11 chắc chắn không thể thiếu việc cài đặt MariaDB. Bây giờ bạn đã có một máy chủ web hoạt động, tiếp theo bạn cần cài đặt hệ thống cơ sở dữ liệu để có thể lưu trữ và quản lý dữ liệu cho trang web.

Trong Debian 11, gói metapackage mysql-server trước đây được sử dụng để cài đặt máy chủ MySQL, bây giờ đã bị thay thế bằng default-mysql-server. Metapackage này tham chiếu đến MariaDB, một bản fork của máy chủ MySQL gốc được phát triển bởi Oracle và hiện nó là máy chủ cơ sở dữ liệu tương thích MySQL mặc định trên các kho lưu trữ quản lý gói dựa trên Debian.

Tuy nhiên, để đảm bảo tính tương thích dài hạn, nó được khuyến nghị rằng thay vì sử dụng metapackage thì bạn nên cài đặt MariaDB bằng cách sử dụng gói thực tế của chương trình, mariadb-server.

Để cài đặt phần mềm MariaDB, chạy lệnh sau:

$ sudo apt install mariadb-server

Khi quá trình cài đặt hoàn tất, bạn nên chạy một tập lệnh bảo mật đi kèm với MariaDB. Tập lệnh này sẽ loại bỏ một số cài đặt mặc định không an toàn và khóa quyền truy cập vào hệ thống cơ sở dữ liệu của bạn. Bắt đầu tập lệnh tương tác bằng cách chạy lệnh sau:

$ sudo mysql_secure_installation

Kịch bản này sẽ dẫn bạn qua một loạt các hộp thoại mà bạn có thể thay đổi cấu hình MariaDB. Hộp thoại đầu tiên sẽ yêu cầu bạn nhập mật khẩu root cơ sở dữ liệu hiện tại. Điều này không được nhầm lẫn với root hệ thống.

Người dùng root cơ sở dữ liệu là một người dùng quản trị với đầy đủ quyền truy cập đối với hệ thống cơ sở dữ liệu. Vì bạn vừa mới cài đặt MariaDB và chưa thực hiện bất kỳ thay đổi cấu hình nào, mật khẩu này sẽ trống, vì vậy nhấn ENTER tại hộp thoại này.

Hộp thoại tiếp theo hỏi bạn liệu bạn có muốn thiết lập mật khẩu root cơ sở dữ liệu hay không. Vì MariaDB sử dụng một phương thức xác thực đặc biệt cho người dùng root thường an toàn hơn việc sử dụng mật khẩu, bạn không cần thiết phải thiết lập mật khẩu này ngay bây giờ. Nhấn N và sau đó nhấn ENTER.

Từ đó, bạn có thể nhấn Y và sau đó nhấn ENTER để chấp nhận các giá trị mặc định cho tất cả các câu hỏi tiếp theo. Điều này sẽ loại bỏ người dùng ẩn danh và cơ sở dữ liệu kiểm tra, vô hiệu hóa đăng nhập root từ xa và tải các quy tắc mới này để MariaDB ngay lập tức tuân thủ các thay đổi bạn đã thực hiện.

Khi bạn hoàn thành, đăng nhập vào giao diện dòng lệnh của MariaDB bằng lệnh sau:

$ sudo mariadb

Lệnh này sẽ kết nối đến máy chủ MariaDB với tư cách người dùng cơ sở dữ liệu quản trị root và được xác định bằng việc sử dụng sudo khi chạy lệnh này. Bạn sẽ nhận được đầu ra tương tự như sau:

Output
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 41
Server version: 10.5.15-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Lưu ý rằng bạn không cần cung cấp mật khẩu để kết nối dưới tư cách người dùng root. Điều này xảy ra vì phương thức xác thực mặc định cho người dùng MariaDB quản trị là unix_socket thay vì mật khẩu. Mặc dù điều này có vẻ như một vấn đề về bảo mật nhưng thực tế nó giúp cho máy chủ cơ sở dữ liệu an toàn hơn.

Vì chỉ có những người dùng được phép đăng nhập dưới tên người dùng root MariaDB là người dùng hệ thống có đặc quyền sudo, kết nối từ bảng điều khiển hoặc thông qua ứng dụng chạy với các quyền tương tự. Trong thực tế, điều này có nghĩa là bạn sẽ không thể sử dụng người dùng root cơ sở dữ liệu quản trị để kết nối từ ứng dụng PHP của bạn.

Để tăng cường bảo mật bạn nên tạo các tài khoản người dùng riêng biệt với các quyền hạn hẹp hơn cho mỗi cơ sở dữ liệu. Đặc biệt là nếu bạn có kế hoạch để cho nhiều cơ sở dữ liệu được lưu trữ trên máy chủ.

Bạn có thể thoát khỏi giao diện dòng lệnh MariaDB bằng lệnh sau:

MariaDB [(none)]> exit

Máy chủ MariaDB của bạn hiện đã được cài đặt và bảo mật. PHP là thành phần cuối cùng trong quá trình install LAMP Debian 11.

Bước 3: Cài đặt PHP

Bạn đã cài đặt Apache để phục vụ nội dung của bạn và MariaDB để lưu trữ và quản lý dữ liệu của bạn. PHP là thành phần trong cấu hình của bạn sẽ xử lý mã để hiển thị nội dung động cho người dùng cuối. Nó có thể chạy các tập lệnh, kết nối với cơ sở dữ liệu MariaDB của bạn để lấy thông tin và chuyển nội dung đã xử lý cho máy chủ web của bạn để hiển thị.

Ngoài gói php, bạn cũng cần php-mysql, một module PHP cho phép PHP giao tiếp với cơ sở dữ liệu dựa trên MySQL, chẳng hạn như MariaDB. Bạn cũng cần libapache2-mod-php để cho phép Apache xử lý các tệp PHP. Các gói PHP cơ bản sẽ tự động được cài đặt như là các phụ thuộc.

Để cài đặt các gói này, chạy lệnh sau:

$ sudo apt install php libapache2-mod-php php-mysql

Sau khi cài đặt hoàn tất, bạn có thể kiểm tra phiên bản PHP của mình bằng lệnh sau:

$ php -v
Output
PHP 7.4.30 (cli) (built: Jul 7 2022 15:51:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies

Lúc này, LAMP stack của bạn đã hoạt động hoàn toàn, nhưng trước khi kiểm tra cài đặt bằng một tập lệnh PHP, tốt nhất là thiết lập một Apache Virtual Host chuẩn để chứa các tệp và thư mục của trang web.

Bước 4: Tạo một Virtual Host cho trang web

Khi sử dụng máy chủ web Apache, bạn có thể tạo các virtual host (tương tự như server block trong Nginx) để bao gồm các chi tiết cấu hình và chứa nhiều tên miền trên cùng một máy chủ. Trong hướng dẫn này, chúng ta sẽ thiết lập một tên miền được gọi là "your_domain", nhưng bạn nên thay thế nó bằng tên miền của riêng bạn.

Theo mặc định, Apache phục vụ nội dung từ một thư mục nằm tại /var/www/html, sử dụng cấu hình được chứa trong /etc/apache2/sites-available/000-default.conf. Thay vì sửa đổi tệp cấu hình trang web mặc định /var/www/html, bạn sẽ tạo một virtual host mới để kiểm tra môi trường PHP.

Virtual host cho phép bạn duy trì nhiều trang web được lưu trữ trên cùng một máy chủ Apache. Bạn cũng sẽ tạo một cấu trúc thư mục bên trong /var/www cho trang your_domain, để lại /var/www/html ở đó như thư mục mặc định để phục vụ nếu một yêu cầu từ khách hàng không phù hợp với bất kỳ trang web nào khác.

Bắt đầu bằng cách tạo thư mục gốc cho your_domain như sau:

$ sudo mkdir /var/www/your_domain

Tiếp theo, gán quyền sở hữu cho thư mục bằng biến môi trường $USER, sẽ tham chiếu đến người dùng hệ thống hiện tại của bạn:

$ sudo chown -R $USER:$USER /var/www/your_domain

Tiếp theo, hãy mở một tệp cấu hình mới trong thư mục sites-available của Apache bằng trình soạn thảo dòng lệnh mà bạn ưa thích. Ở đây, chúng ta sẽ sử dụng nano:

$ sudo nano /etc/apache2/sites-available/your_domain.conf

Điều này sẽ tạo ra một tệp trống mới. Thêm vào đó cấu hình cơ bản sau đây với tên miền riêng của bạn:

<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain 
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Lưu và đóng tệp khi hoàn tất. Nếu bạn đang sử dụng nano, bạn có thể làm điều này bằng cách nhấn CTRL + X, sau đó Y và ENTER.

Với cấu hình VirtualHost này, bạn đang thông báo cho Apache để phục vụ your_domain bằng cách sử dụng /var/www/your_domain làm thư mục gốc của trang web. Nếu bạn muốn kiểm tra Apache mà không có tên miền, bạn có thể xóa hoặc tạo ghi chú cho các tùy chọn ServerName và ServerAlias bằng cách thêm dấu số thăng (#) ở đầu mỗi dòng tùy chọn.

Bây giờ, hãy sử dụng a2ensite để kích hoạt virtual host này:

$ sudo a2ensite your_domain

Bạn có thể muốn tắt trang web mặc định đi kèm với Apache. Điều này là bắt buộc nếu bạn không sử dụng tên miền tùy chỉnh, vì trong trường hợp này, cấu hình mặc định của Apache sẽ ghi đè lên virtual host. Để tắt trang web mặc định của Apache, chạy:

$ sudo a2dissite 000-default

Để đảm bảo rằng tệp cấu hình của bạn không chứa lỗi cú pháp, chạy lệnh sau:

$ sudo apache2ctl configtest

Cuối cùng, tải lại Apache để các thay đổi này có hiệu lực:

$ sudo systemctl reload apache2

Tiếp theo, bạn sẽ tạo một tập lệnh PHP để kiểm tra xem PHP đã được cài đặt và cấu hình đúng trên máy chủ của bạn.

Bước 5: Kiểm tra xử lý PHP trên máy chủ web

Bây giờ, khi bạn đã có một vị trí tùy chỉnh để lưu trữ các tệp và thư mục của trang web hãy tạo một tập lệnh kiểm tra PHP để xác nhận rằng Apache có thể xử lý và xử lý yêu cầu cho các tệp PHP.

Bắt đầu bằng cách tạo một tệp mới có tên là "info.php" bên trong thư mục gốc web tùy chỉnh của bạn:

$ nano /var/www/your_domain/info.php

Điều này sẽ mở một tệp trống. Thêm đoạn văn bản sau, đó là mã PHP hợp lệ vào trong tệp:

<?php
phpinfo();

Khi bạn đã hoàn thành, hãy lưu và đóng tệp.

Để kiểm tra tập lệnh, hãy mở trình duyệt web và truy cập tên miền của máy chủ hoặc địa chỉ IP máy chủ, theo sau bởi tên tập lệnh, trong trường hợp này là "info.php":

http://your_domain/info.php

Dưới đây là một ví dụ về trang web PHP mặc định:

Cài đặt LAMP trên Debian 11 - Install LAMP Debian 11

Trang này cung cấp thông tin về máy chủ của bạn từ góc nhìn của PHP. Nó hữu ích để gỡ lỗi và đảm bảo rằng cài đặt của bạn đang được áp dụng đúng cách.

Nếu bạn có thể thấy trang này trong trình duyệt của mình thì cài đặt PHP hoạt động như mong đợi.

Sau khi kiểm tra thông tin liên quan về máy chủ PHP của bạn qua trang đó, tốt nhất là loại bỏ tệp bạn đã tạo vì nó chứa thông tin nhạy cảm về môi trường PHP và máy chủ Debian. Sử dụng lệnh rm để làm điều này:

$ sudo rm /var/www/your_domain/info.php

Bạn luôn có thể tạo lại trang này nếu bạn cần truy cập thông tin lại sau này.

Bước 6: Kiểm tra kết nối cơ sở dữ liệu từ PHP (tùy chọn)

Đây là bước cuối cùng khi install LAMP Debian 11. Nếu bạn muốn kiểm tra xem PHP có thể kết nối với MariaDB và thực thi các truy vấn cơ sở dữ liệu, bạn có thể tạo một bảng kiểm tra với dữ liệu thử nghiệm và truy vấn nội dung của nó từ một tập lệnh PHP. Trước khi làm điều đó, bạn cần tạo một cơ sở dữ liệu thử nghiệm và một người dùng MariaDB mới được cấu hình đúng cách để truy cập nó.

Hãy tạo một cơ sở dữ liệu có tên là "example_database" và một người dùng có tên là "example_user". Bạn có thể thay thế những tên này bằng các giá trị khác.

Đầu tiên, kết nối vào bảng điều khiển MariaDB bằng tài khoản root:

$ sudo mariadb

Để tạo một cơ sở dữ liệu mới, chạy lệnh sau từ bảng điều khiển MariaDB của bạn:

MariaDB [(none)]> CREATE DATABASE example_database;

Bây giờ, hãy tạo một người dùng mới và cấp cho họ đầy đủ quyền truy cập vào cơ sở dữ liệu tùy chỉnh bạn đã tạo.

Lệnh sau tạo một người dùng mới có tên là "example_user" và xác thực với mật khẩu. Chúng ta đang xác định mật khẩu cho người dùng này là "password" nhưng bạn nên thay thế giá trị này bằng một mật khẩu an toàn tự chọn:

MariaDB [(none)]> CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';

Tiếp theo, hãy cấp quyền cho người dùng này trên cơ sở dữ liệu "example_database":

MariaDB [(none)]> GRANT ALL ON example_database.* TO 'example_user'@'%';

Điều này sẽ cung cấp cho người dùng "example_user" đầy đủ quyền truy cập vào cơ sở dữ liệu "example_database", đồng thời ngăn người dùng này tạo hoặc sửa đổi các cơ sở dữ liệu khác trên máy chủ của bạn.

Tiếp theo, xoá các đặc quyền để đảm bảo rằng chúng được lưu và sẵn có trong phiên làm việc hiện tại:

MariaDB [(none)]> FLUSH PRIVILEGES;

Sau đó, thoát khỏi bảng điều khiển MariaDB:

MariaDB [(none)]> exit

Bạn có thể kiểm tra xem người dùng mới có các quyền cần thiết bằng cách đăng nhập vào bảng điều khiển MariaDB một lần nữa, lần này sử dụng thông tin đăng nhập của người dùng tùy chỉnh:

$ mariadb -u example_user -p

Lưu ý cờ -p trong lệnh này, nó sẽ yêu cầu bạn nhập mật khẩu được sử dụng khi tạo người dùng "example_user". Sau khi đăng nhập vào bảng điều khiển MariaDB, xác nhận rằng bạn có quyền truy cập vào cơ sở dữ liệu "example_database":

MariaDB [(none)]> SHOW DATABASES;

Điều này sẽ trả về đầu ra sau:

Output
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

Tiếp theo, hãy tạo một bảng kiểm tra có tên là "todo_list". Từ bảng điều khiển MariaDB, chạy lệnh sau:

MariaDB [(none)]> CREATE TABLE example_database.todo_list (
MariaDB [(none)]> item_id INT AUTO_INCREMENT,
MariaDB [(none)]> content VARCHAR(255),
MariaDB [(none)]> PRIMARY KEY(item_id)
MariaDB [(none)]> );

Chèn vài hàng dữ liệu vào bảng kiểm tra. Lặp lại lệnh sau một vài lần, sử dụng các giá trị khác nhau, để điền dữ liệu vào bảng kiểm tra của bạn:

MariaDB [(none)]> INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

Để xác nhận rằng dữ liệu đã được lưu thành công vào bảng của bạn, chạy:

MariaDB [(none)]> SELECT * FROM example_database.todo_list;

Bạn sẽ nhận được đầu ra tương tự như sau:

Output
+---------+--------------------------+
| item_id | content |
+---------+--------------------------+
| 1 | My first important item |
| 2 | My second important item |
| 3 | My third important item |
| 4 | and this one more thing |
+---------+--------------------------+
4 rows in set (0.000 sec)

Sau khi xác nhận bạn có dữ liệu hợp lệ trong bảng kiểm tra, bạn có thể thoát khỏi bảng điều khiển MariaDB:

MariaDB [(none)]> exit

Bây giờ, bạn có thể tạo tập lệnh PHP sẽ kết nối với MariaDB và truy vấn nội dung. Tạo một tập tin PHP mới trong thư mục gốc web tùy chỉnh của bạn bằng trình soạn thảo ưa thích:

$ nano /var/www/your_domain/todo_list.php

Kịch bản PHP sau đây sẽ kết nối đến cơ sở dữ liệu MariaDB và truy vấn nội dung của bảng "todo_list", sau đó hiển thị kết quả trong một danh sách. Nếu có vấn đề với kết nối cơ sở dữ liệu, nó sẽ đưa ra một ngoại lệ.

Thêm nội dung sau vào tập tin index.php của bạn, hãy nhớ thay thế các giá trị example_user và password bằng thông tin của bạn:

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>"; 
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}

Lưu và đóng tập tin khi bạn đã chỉnh sửa xong.

Bây giờ, bạn có thể truy cập trang này trong trình duyệt web bằng cách truy cập tên miền hoặc địa chỉ IP công cộng của trang web, sau đó thêm /todo_list.php vào:

http://your_domain/todo_list.php

Trang web này sẽ hiển thị nội dung bạn đã chèn vào bảng kiểm tra cho khách truy cập của bạn:

Cài đặt LAMP trên Debian 11 - Install LAMP Debian 11

Điều này có nghĩa là môi trường PHP của bạn đã sẵn sàng để kết nối và tương tác với máy chủ MariaDB.

Trong hướng dẫn này, bạn đã install LAMP Debian 11 bằng cách xây dựng một nền tảng linh hoạt để phục vụ các trang web và ứng dụng PHP cho khách truy cập của bạn, sử dụng Apache như máy chủ web và MariaDB như hệ thống cơ sở dữ liệu.

Như một bước tiếp theo, bạn nên đảm bảo rằng các kết nối đến máy chủ web được bảo mật bằng cách cung cấp chúng qua HTTPS. Để thực hiện điều đó, bạn có thể sử dụng Let's Encrypt. Đến đây bạn đã hoàn thành quá trình install LAMP Debian 11.

Mọi người cũng tìm kiếm: install lamp debian 11, debian 11 lamp, lamp debian 11