“LAMP” 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áy chủ có thể lưu trữ các trang web động và ứng dụng web. Trong bài viết hướng dẫn cách cài đặt LAMP stack trên CentOS 7 này, mình sẽ hướng dẫn bạn cách cài đặt LAMP stack bao gồm hệ điều hành Linux, máy chủ web Apache, cơ sở dữ liệu MariaDB và PHP trên một máy chủ CentOS 7.
Những điểm chính
- Tìm hiểu LAMP stack là gì và vai trò của từng thành phần trong hệ sinh thái web.
- Nắm rõ các yêu cầu cần thiết để tiến hành cài đặt LAMP trên CentOS 7.
- Hướng dẫn chi tiết từng bước cài đặt và cấu hình Linux, Apache, MySQL, PHP (LAMP) trên CentOS 7.
- Biết đến Vietnix là nhà cung cấp VPS đảm bảo hiệu suất và ổn định cho LAMP stack.
- Giải đáp một số câu hỏi thường gặp khi cài đặt Linux, Apache, MySQL, PHP (LAMP) trên CentOS 7.
LAMP là gì?
LAMP là từ viết tắt đại diện cho hệ điều hành Linux (L), máy chủ web Apache (A). Dữ liệu trang web thường được lưu trữ trong cơ sở dữ liệu MySQL (M) và nội dung động được xử lý bởi PHP (P).

Trên hầu hết các hệ thống Linux, bạn có thể cài đặt MySQL bằng cách tải gói mysql-server
từ repositories quản lý gói mặc định trên hệ thống. Tuy nhiên, trên CentOS 7, gói mysql-server
sẽ cài đặt từ MariaDB. Đây là một phiên bản được phát triển bởi cộng đồng của hệ thống quản lý cơ sở dữ liệu quan hệ MySQL. Ứng dụng hoạt động như một phiên bản thay thế cho MySQL.
Để quá trình cài đặt LAMP stack trên CentOS 7 diễn ra thuận lợi, không gặp bất cứ vấn đề nào thì bạn cần có một máy chủ với khả năng mở rộng linh hoạt và toàn quyền quản trị. Một lựa chọn đáng cân nhắc là VPS NVMe Vietnix với hiệu năng vượt trội, đảm bảo các tác vụ biên dịch, xử lý dữ liệu và vận hành ứng dụng trên LAMP mượt mà, nhanh chóng nhờ ổ cứng NVMe Enterprise và CPU Intel Xeon Platinum. Tận dụng tốc độ của NVMe để tối ưu hiệu suất cho web server, database và PHP của bạn.

VPS NVME – Ổ CỨNG VÀ CPU THẾ HỆ MỚI
Khả năng xử lý siêu khủng với ổ cứng NVMe và CPU Platinum, cài đặt và cấu hình LAMP dễ dàng
Yêu cầu để cách cài đặt LAMP stack trên CentOS 7 được triển khai
Để thực hiện được các bước trong bài viết này, bạn cần có một tài khoản user non-root trên máy chủ CentOS 7. Sau khi có tài khoản, bạn có thể bắt đầu ngay bước 1.
Bước 1 – Cài đặt web server Apache
Apache là một web server mã nguồn mở phổ biến được sử dụng để hiển thị trang web cho người truy cập. Bạn có thể cấu hình Apache để phục vụ các trang PHP.
Hãy cài đặt Apache bằng trình quản lý package yum
của CentOS. Nhập lệnh này trong cửa sổ terminal để cài đặt gói httpd
Apache:
sudo yum install httpd
Khi được yêu cầu, bạn hãy nhập Y
để xác nhận việc cài đặt Apache. Sau khi cài đặt hoàn tất, bạn có thể khởi động máy chủ Apache của mình bằng lệnh này:
sudo systemctl start httpd
Để kiểm tra xem máy chủ của mình có đang chạy không, hãy nhập địa chỉ IP công khai hoặc tên miền của bạn vào trình duyệt web. Nếu bạn không có tên miền được chỉ định cho máy chủ hoặc không biết địa chỉ IP công khai của máy chủ, hãy chạy lệnh sau:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'
Lệnh này sẽ hiển thị một vài địa chỉ khác nhau. Bạn có thể thử từng địa chỉ này trong trình duyệt web của mình.
Một phương pháp khác là sử dụng bên thứ ba để xem máy chủ được hiển thị như thế nào. Bạn có thể yêu cầu máy chủ cụ thể khác xác định địa chỉ IP của bạn bằng lệnh sau:
curl http://icanhazip.com
Bất kể bạn chọn phương pháp nào, 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ủ đang chạy:
http://your_server_IP_address
Trang chào mừng Apache mặc định trên CentOS 7 sẽ hiển thị.

Bạn có thể khởi động Apache mỗi lần boot với lệnh sau:
sudo systemctl enable httpd.service
Bạn đang tìm kiếm một web server Apache ổn định và mạnh mẽ để chạy website của mình? Với VPS của Vietnix, việc cài đặt và quản lý Apache trở nên dễ dàng hơn bao giờ hết, đảm bảo website của bạn luôn hoạt động mượt mà và sẵn sàng phục vụ người dùng.
Bước 2 – Cài đặt MySQL (MariaDB)
Sau khi web server đã hoạt động, bạn có thể cài đặt MariaDB (Bạn có thể tham khảo bài viết Hướng dẫn cách cài đặt MariaDB trên CentOS 7 tại đây) để tổ chức và cung cấp quyền truy cập vào database giúp lưu trữ thông tin trên web.
Để cài đặt gói phần mềm MariaDB, bạn hãy chạy lệnh dưới đây:
sudo yum install mariadb-server
Khi quá trình cài đặt hoàn tất, bạn khởi động MariaDB:
sudo systemctl start mariadb
Bạn có thể kích hoạt MariaDB tự động chạy khi hệ thống khởi động bằng lệnh này:
sudo systemctl enable mariadb.service
Để cải thiện bảo mật cho database server, bạn nên chạy một script bảo mật đi kèm 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 truy cập vào hệ thống database.
Hãy bắt đầu script bằng cách chạy lệnh sau:
sudo mysql_secure_installation
Bạn cần trả lời một loạt câu hỏi khi chạy script này để có thể thực hiện vài thay đổi trong cài đặt MariaDB. Câu hỏi đầu tiên yêu cầu bạn nhập mật khẩu root hiện tại của database. Đừng nhầm lẫn với user root của hệ thống. User root của database là một người dùng quản trị với đầy đủ quyền hạn trên hệ thống database. 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 nên mật khẩu này sẽ trống. Nhấn ENTER
khi được hỏi câu này.
Câu tiếp theo sẽ hỏi liệu bạn có muốn thiết lập mật khẩu root cho database hay không. Nhập N
và sau đó nhấn ENTER
.
Sau câu này, bạn có thể nhấn Y
, và sau đó nhấn ENTER
để chấp nhận giá trị mặc định cho tất cả các câu hỏi kế tiếp. Như vậy sẽ loại bỏ người dùng ẩn danh và test database, vô hiệu hóa đăng nhập root từ xa và tải các quy tắc mới để máy chủ tuân thủ ngay lập tức các thay đổi bạn đã thực hiện.
Khi bạn đã hoàn tất, hãy đăng nhập vào bảng điều khiển MariaDB bằng cách nhập:
sudo mysql
Bạn sẽ được kết nối đến máy chủ MariaDB với quyền quản trị database là root:
Output
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Để tăng cường bảo mật, bạn hãy thiết lập các tài khoản user riêng và hạn chế quyền cho mỗi database. Điều này đặc biệt quan trọng nếu bạn dự định có nhiều database được lưu trữ trên máy chủ của mình.
Để minh họa, bạn hãy tạo một database có tên là vietnix_database
và một người dùng có tên là vietnix_user. Bạn có thể thay thế tên này bằng các giá trị khác.
Chạy lệnh sau từ MariaDB console để tạo một database mới:
CREATE DATABASE vietnix_database;
Bạn có thể tạo một user mới và cấp cho họ đầy đủ quyền trên database vừa tạo. Lệnh sau định nghĩa mật khẩu của 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 hơn:
GRANT ALL ON vietnix_database.* TO 'vietnix_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Lệnh này cung cấp cho người dùng vietnix_user đầy đủ quyền trên database
và ngăn người dùng này tạo hoặc sửa đổi các database khác trên máy chủ của bạn.vietnix
_database
Sử dụng câu lệnh FLUSH
để tải lại và lưu các quyền mà bạn vừa cấp cho vietnix_user:
FLUSH PRIVILEGES;
Thoát khỏi cửa sổ lệnh MariaDB:
exit
Bạn có thể kiểm tra quyền của user mới bằng cách đăng nhập lại vào cửa sổ lệnh MariaDB và sử dụng thông tin đăng nhập của user vietnix_user đã tạo ở trên:
mysql -u vietnix_user -p
Chú ý đến cờ -p
trong lệnh này. Nó sẽ yêu cầu nhập mật khẩu mà bạn đã chọn khi tạo người dùng vietnix_user. Sau khi đăng nhập vào cửa sổ lệnh MariaDB, xác nhận rằng bạn có quyền truy cập vào cơ sở dữ liệu vietnix_database
bằng cách thực thi lệnh sau:
SHOW DATABASES;
Database vietnix_database
của bạn sẽ được liệt kê trong output:
Output
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
Để thoát khỏi cửa sổ lệnh MariaDB, gõ:
exit
Hệ thống database đã được cài đặt hoàn tất và bạn có thể tiếp tục cài đặt PHP.
Bước 3 – Cài đặt PHP
Bạn đã cài đặt Apache để phục vụ nội dung và MariaDB để lưu trữ và quản lý dữ liệu. PHP sẽ xử lý mã code để hiển thị nội dung cho người dùng. Ngoài gói php
, bạn cần cài đặt php-mysql
– một module cho phép PHP giao tiếp với các database dựa trên MySQL. Các gói PHP core sẽ tự động được cài đặt.
Sử dụng lệnh sau với yum
để cài đặt các gói php
và php-mysql
:
sudo yum install php php-mysql
Khởi động lại web server Apache để bật module PHP bạn đã cài đặt:
sudo systemctl restart httpd.service
Máy chủ của bạn hiện đã được cấu hình với tất cả các thành phần cần thiết cho ứng dụng LAMP. Bước tiếp theo là kiểm tra cấu hình để đảm bảo rằng mọi thứ đang hoạt động trơn tru.
Bước 4 – Kiểm tra PHP trên web server Apache
Cài đặt mặc định của Apache trên CentOS 7 sẽ tạo một thư mục gốc tại /var/www/html
. Bạn không cần thay đổi bất kì cài đặt nào để PHP hoạt động ổn định trên trang web của bạn.
Tuy nhiên, bạn có thể điều chỉnh quyền mặc định trên thư mục document root của Apache. Bạn có thể tạo và sửa đổi các file trong thư mục đó với tài khoản user hệ thống mà không cần phải sử dụng sudo
cho mỗi lệnh.
Lệnh sau sẽ thay đổi chủ sở hữu của document root Apache mặc định thành một user và group có tên là vietnix
. Thay thế tên user và group trong lệnh này theo của hệ thống của bạn:
sudo chown -R vietnix.vietnix /var/www/html/
Bạn có thể tạo một file PHP kiểm tra web server có hoạt động như mong đợi không. Hãy sử dụng trình chỉnh sửa văn bản để tạo file này. Các ví dụ sau đây sử dụng trình chỉnh sửa văn bản vi
mặc định trên CentOS 7.
Tạo một file PHP có tên là info.php
trong thư mục var/www/html
:
vi /var/www/html/info.php
Một file PHP trống tại thư mục/var/www/html sẽ được mở. Nhấn nút [Ins]
trên bàn phím để nhập vào chế độ INSERT trong trình trỉnh sửa vi
. Bạn có thể gõ và thực hiện các thay đổi trong trình soạn thảo văn bản. Sau đó, bạn hãy nhập vào mã PHP sau:
<?php phpinfo(); ?>
Mã PHP này hiển thị thông tin môi trường PHP đang chạy trên máy chủ của bạn. Khi hoàn thành việc thay đổi file, nhấn phím ESC
để thoát khỏi chế độ INSERT
trong vi
. Nhập :x
để lưu và đóng tệp.
Bạn có thể kiểm tra xem web server hiển thị nội dung PHP đúng cách không bằng cách truy cập địa chỉ IP công cộng của máy chủ và gắn theo sau là /info.php
:
http://your_server_IP_address/info.php
Một trang web tương tự như bên dưới sẽ được hiển thị trong trình duyệt:

Trang web này cung cấp thông tin về máy chủ của bạn từ góc độ của PHP. Nó rất hữu ích cho việc gỡ lỗi và đảm bảo các cài đặt được áp dụng đúng cách. Sau khi kiểm tra thông tin liên quan đến máy chủ PHP, bạn nên xóa file này vì nó chứa thông tin nhạy cảm về môi trường PHP và máy chủ CentOS của bạn.
Sử dụng rm
để xóa file này:
rm /var/www/html/info.php
Bạn có thể tạo lại trang này ở lần sau nếu cần truy cập thông tin. Tiếp theo, bạn có thể kiểm tra kết nối database bằng cách sử dụng PHP.
Bước 5 – Kiểm tra kết nối database với PHP (tùy chọn)
Bạn có thể kiểm tra PHP có kết nối với MariaDB và thực thi các truy vấn database không bằng cách tạo test table với một vài test data và thực hiện truy vấn nội dung từ một script PHP.
Trước tiên, bạn cần kết nối MariaDB console với database user đã tạo trong Bước 2 của bài viết này:
mysql -u vietnix_user -p
Từ MariaDB console, bạn hãy chạy lệnh sau để tạo một bảng có tên là todo_list
trong vietnix_database
:
CREATE TABLE vietnix_database.todo_list (
item_id INT AUTO_INCREMENT,
content VARCHAR(255),
PRIMARY KEY(item_id)
);
MariaDB console sẽ thông báo cho bạn về các thay đổi trong bảng sau mỗi lần chỉnh sửa:
Query OK, 0 rows affected (0.00 sec)
Thêm một vài hàng dữ liệu vào test table. Bạn có thể lặp lại lệnh dưới đây vài lần, sử dụng các giá trị khác nhau để điền dữ liệu cho test table của mình:
INSERT INTO vietnix_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, bạn hãy chạy lệnh dưới đây:
SELECT * FROM vietnix_database.todo_list;
Output sau khi thực hiện chèn sẽ 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 có dữ liệu hợp lệ trong test table, bạn có thể thoát khỏi MariaDB console:
exit
Bây giờ bạn có thể tạo script PHP để kết nối đến MariaDB và truy vấn nội dung của mình. Tạo một file PHP mới trong thư mục gốc của bạn bằng trình chỉnh sửa văn bản. Ví dụ này sử dụng trình soạn thảo vi
:
vi /var/www/html/todo_list.php
Thêm nội dung dưới đây vào file bằng cách nhấn I
trong trình soạn thảo văn bản vi
. Bạn hãy nhớ thay thế vietnix_user
và password
bằng thông tin của mình:
<?php
$user = "vietnix_user";
$password = "password";
$database = "vietnix_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();
}
Bạn có thể lưu và đóng file sau khi hoàn tất chỉnh sửa bằng cách nhấn ESC
, sau đó gõ :x
trong trình soạn thảo vi
.
Bây giờ, bạn có thể truy cập trang này trên trình duyệt web bằng cách truy cập vào tên máy chủ hoặc địa chỉ IP công khai của máy chủ, gắn thêm ở sau /todo_list.php
:
http://server_host_or_IP/todo_list.php
Dưới đây là một ví dụ về trang web hiển thị nội dung bạn đã chèn vào test table:

VPS Vietnix: Nền tảng vững chắc cho mọi ứng dụng web của bạn
Vietnix mang đến dịch vụ máy chủ ảo VPS đáng tin cậy và chất lượng cao với giá cả phải chăng, cùng nhiều gói dịch vụ VPS đa dạng để khách hàng lựa chọn như VPS Giá Rẻ, VPS SSD, VPS AMD, VPS NVMe. Hệ thống quản lý máy chủ hiện đại với cấu hình mạnh mẽ và toàn quyền quản trị cho phép khách hàng dễ dàng thao tác và cấu hình máy chủ thông qua giao diện quản trị thân thiện. Đội ngũ hỗ trợ khách hàng nhanh chóng và tận tình 24/7 của Vietnix luôn sẵn sàng giải đáp thắc mắc và giải quyết mọi vấn đề kỹ thuật trong quá trình sử dụng.
Thông tin liên hệ:
- Hotline: 18001093.
- Email: sales@vietnix.com.vn.
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/.
Câu hỏi thường gặp
Có cần cài đặt firewall trên CentOS 7 khi cài đặt LAMP không?
Có, việc cài đặt và cấu hình firewall là cực kỳ quan trọng để bảo vệ máy chủ LAMP của bạn. Mặc dù hướng dẫn này không bao gồm chi tiết cấu hình firewall, nhưng bạn nên kích hoạt và cấu hình firewalld (firewall mặc định trên CentOS 7) để chỉ cho phép các cổng cần thiết (như 80 cho HTTP, 443 cho HTTPS và 22 cho SSH) được truy cập từ bên ngoài. Điều này giúp ngăn chặn các truy cập trái phép và giảm thiểu bề mặt tấn công của máy chủ.
Làm thế nào để nâng cấp các thành phần của LAMP (Apache, MariaDB, PHP) trong tương lai?
Việc nâng cấp các thành phần của LAMP stack trên CentOS 7 thường được thực hiện thông qua trình quản lý gói yum
. Bạn có thể sử dụng lệnh sudo yum update
để cập nhật tất cả các gói đã cài đặt lên phiên bản mới nhất có sẵn trong các kho lưu trữ đã cấu hình. Tuy nhiên, trước khi nâng cấp các thành phần quan trọng như Apache, MariaDB, hoặc PHP trên môi trường production, bạn nên sao lưu dữ liệu và kiểm tra khả năng tương thích của ứng dụng với phiên bản mới để tránh các sự cố không mong muốn.
Liệu LAMP stack có phù hợp với mọi loại website và ứng dụng không?
LAMP stack là một lựa chọn tuyệt vời và rất phổ biến cho nhiều loại website và ứng dụng web, đặc biệt là các dự án dựa trên PHP như WordPress, Joomla, Drupal, hay các ứng dụng tùy chỉnh. Tuy nhiên, đối với một số ứng dụng có yêu cầu rất cao về hiệu suất hoặc cần các công nghệ database/web server khác, bạn có thể cân nhắc các stack khác như LEMP (Linux, Nginx, MySQL/MariaDB, PHP) hoặc các giải pháp chuyên biệt hơn.
Sau khi cài đặt LAMP hoàn tất, tôi có cần cài đặt thêm phần mềm nào khác không?
Sau khi cài đặt LAMP stack cơ bản, bạn có thể cần cài đặt thêm một số phần mềm hoặc cấu hình bổ sung tùy thuộc vào yêu cầu của ứng dụng web của bạn:
– PHP Extensions: Tùy thuộc vào ứng dụng của bạn, bạn có thể cần cài đặt thêm các module mở rộng của PHP (ví dụ: php-gd
cho xử lý hình ảnh, php-xml
cho XML).
– Composer: Công cụ quản lý gói PHP.
– Git: Để quản lý mã nguồn.
– SSL/TLS Certificate: Để bảo mật website với HTTPS (Let’s Encrypt là lựa chọn phổ biến).
– Firewall: Cấu hình tường lửa (ví dụ: firewalld
hoặc iptables
) để chỉ cho phép các cổng cần thiết (HTTP/HTTPS, SSH) được mở.
– Webmin/phpMyAdmin: Các công cụ quản lý GUI để đơn giản hóa việc quản trị server và database.
Với bài viết về hướng dẫn cách cài đặt LAMP stack trên CentOS 7 này, Vietnix đã hướng dẫn bạn 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, sử dụng Apache như một web server. Cùng với đó là cách cài đặt Apache để xử lý các yêu cầu PHP và thiết lập database MariaDB để lưu trữ dữ liệu trang web của mình. Nếu có khó khăn gì trong quá trình thực hiện các bước trong bài viết, bạn hãy để lại bình luận bên dưới nhé để được hỗ trợ nhanh chóng nhé.