Giới thiệu
Một “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 chữ viết tắt đại diện cho hệ điều hành Linux, kết hợp với máy chủ web Apache. Dữ liệu trang web thường được lưu trữ trong cơ sở dữ liệu MySQL và nội dung động được xử lý bởi PHP.
Yêu cầu
Trước khi bắt đầu với hướng dẫn này, bạn nên tạo một tài khoản người dùng riêng biệt, không phải root trên máy chủ của mình.
Bước 1 — Cài đặt Máy chủ Web Apache
Apache là một máy chủ web mã nguồn mở phổ biến được sử dụng để hiển thị các trang web cho khách truy cập. Bạn có thể cấu hình nó để phục vụ các trang PHP.
Cài đặt Apache bằng cách sử dụng trình quản lý gói của CentOS, yum. Trình quản lý gói cho phép bạn cài đặt hầu hết phần mềm từ kho lưu trữ do CentOS duy trì.
# sudo yum install httpd -y
Khi cài đặt hoàn tất, hãy khởi động máy chủ Apache của bạn với lệnh này
# sudo systemctl start httpd
# sudo systemctl enable httpd
Nếu Firewalld đang chạy, hãy cho phép dịch vụ HTTP/HTTPS. HTTP sử dụng cổng 80/TCP vs HTTPS sử dụng cổng 443/TCP
# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# firewall-cmd --runtime-to-permanent
Hãy nhập địa chỉ IP của bạn vào trình duyệt web để xác minh rằng máy chủ của bạn đang chạy. Bạn sẽ thấy trang landing mặc định của Apache CentOS:
http://your_server_IP_address

Bước 2 — Cài đặt MySQL (MariaDB)
Khi máy chủ web của bạn đã hoạt động, bạn có thể cài đặt MariaDB. Nó sẽ tổ chức và cung cấp quyền truy cập vào cơ sở dữ liệu để trang web của bạn có thể lưu trữ thông tin.
Để cài đặt gói phần mềm MariaDB, chạy:
# sudo yum install mariadb-server -y
# sudo systemctl start mariadb
# sudo systemctl enable mariadb
Trên firewall hãy cho phép dịch vụ Mariadb/Mysql chạy. Mysql/Mariadb sử dụng cổng 3306/TCP.
# firewall-cmd --add-service=mysql
# firewall-cmd --runtime-to-permanent
Để cải thiện bảo mật cho máy chủ cơ sở dữ liệu của bạn, khuyến nghị bạn chạy một script bảo mật đã được cài sẵn cùng với MariaDB. Script 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.
# sudo mysql_secure_installation
Câu hỏi đầu tiên yêu cầu bạn nhập mật khẩu của người dùng root trong cơ sở dữ liệu. Lưu ý đây không phải là mật khẩu của người dùng root hệ thống. Người dùng root trong cơ sở dữ liệu là người dùng quản trị có quyền truy cập đầy đủ vào hệ thống cơ sở dữ liệu. Vì bạn vừa cài đặt MariaDB và chưa thay đổi bất kỳ cài đặt nào, mật khẩu này sẽ để trống. Nhấn ENTER tại câu hỏi này.
Câu hỏi tiếp theo yêu cầu bạn thiết lập mật khẩu cho người dùng root trong cơ sở dữ liệu. Nhập Y và nhập gõ pass bạn muốn đặt cho tài khoản root database.
Từ đó, bạn có thể nhấn Y và ENTER để chấp nhận cài đặt mặc định cho các câu hỏi tiếp theo. Điều này sẽ xóa người dùng ẩn danh và cơ sở dữ liệu thử nghiệm, vô hiệu hóa đăng nhập root từ xa, và tải lại các quy tắc mới để máy chủ ngay lập tức tuân theo các thay đổi bạn đã thực hiện.
Khi bạn hoàn thành, hãy đăng nhập vào bảng điều khiển MariaDB bằng lệnh:
# sudo mysql
Điều này sẽ kết nối bạn với máy chủ MariaDB với tư cách là người dùng quản trị cơ sở dữ liệu root.
# Hiển thị các quyền (privileges) mà người dùng root có trên máy chủ cơ sở dữ liệu
MariaDB [(none)]> show grants for root@localhost;
# Output
+-----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
# Show user list
MariaDB [(none)]> select user,host,password from mysql.user;
# Output
+-------------+-----------+----------+
| User | Host | Password |
+-------------+-----------+----------+
| mariadb.sys | localhost | |
| root | localhost | invalid |
| mysql | localhost | invalid |
+-------------+-----------+----------+
3 rows in set (0.001 sec)
# Show database list
MariaDB [(none)]> show databases;
# Output
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)
# Create test database
MariaDB [(none)]> create database test_database;
Query OK, 1 row affected (0.000 sec)
# Create test table on test database
MariaDB [(none)]> create table test_database.test_table (id int, name varchar(50), address varchar(50), primary key (id));
Query OK, 0 rows affected (0.108 sec)
# Insert data to test table
MariaDB [(none)]> insert into test_database.test_table(id, name, address) values("001", "CentOS", "Hiroshima");
Query OK, 1 row affected (0.036 sec)
# Show test table
MariaDB [(none)]> select * from test_database.test_table;
+----+--------+-----------+
| id | name | address |
+----+--------+-----------+
| 1 | CentOS | Hiroshima |
+----+--------+-----------+
1 row in set (0.000 sec)
# Delete test database
MariaDB [(none)]> drop database test_database;
Query OK, 1 row affected (0.111 sec)
Bước 3 — Cài đặt PHP
Bạn đã cài đặt Apache để phục vụ nội dung của mình và MariaDB để lưu trữ và quản lý dữ liệu của bạn. PHP sẽ xử lý mã để hiển thị nội dung động cho người dùng. Ngoài gói php, bạn sẽ cần php-mysql, một mô-đun PHP cho phép PHP giao tiếp với các cơ sở dữ liệu dựa trên MySQL.
Dùng lệnh sau để cài đặt gói php và các gói liên quan
# sudo yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-mbstring php-xml php-bcmath -y
Khởi động lại máy chủ Apache để bật mô-đun PHP bạn đã cài đặt:
# sudo systemctl restart httpd
Bước 4 — Tùy chọn
1. Kiểm tra phiên bản PHP, Apache, MariaDB:
Để kiểm tra các phiên bản Apache, MariaDB, PHP, sử dụng lệnh:
# php -v
# Output
PHP 7.4.3 (cli) (built: Mar 5 2020 12:32:59) ( NTS )
# httpd -v
# Output
Server version: Apache/2.4.6 (CentOS)
Server built: Jul 9 2020 12:45:45
# mysql -V
# Output
mysql Ver 15.1 Distrib 10.3.22-MariaDB, for Linux (x86_64) using readline 5.1
2. Kiểm tra trạng thái của Apache (httpd), Mariadb:
Để kiểm tra trạng thái của Apache (httpd), sử dụng lệnh:
# sudo systemctl status httpd
# Output
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-02-28 10:24:51 UTC; 1h 10min ago
Docs: man:httpd.service(8)
Main PID: 1456 (httpd)
CGroup: /system.slice/httpd.service
├─1456 /usr/sbin/httpd -DFOREGROUND
├─1457 /usr/sbin/httpd -DFOREGROUND
└─1458 /usr/sbin/httpd -DFOREGROUND
Để kiểm tra trạng thái của MariaDB, sử dụng lệnh:
# sudo systemctl status mariadb
# Output
● mariadb.service - MariaDB 10.3.22 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-02-28 10:24:51 UTC; 1h 10min ago
Docs: man:mariadbd(8)
Main PID: 1234 (mariadbd)
CGroup: /system.slice/mariadb.service
└─1234 /usr/sbin/mariadbd --basedir=/usr