“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, Vietnix 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.
Giới thiệu về LAMP
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.
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
Xem thêm: Hướng dẫn theo dõi System Metrics bằng TICK Stack trên CentOS 7 đơn giản
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.
Để quá trình cài đặt Linux, Apache, MySQL, PHP (LAMP) 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 Vietnix với nhiều ưu điểm, bao gồm:
- Cung cấp 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 và nhiều gói dịch vụ VPS để khách hàng lựa chọn như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe, VPS GPU.
- Hỗ trợ khách hàng nhanh chóng và tận tình 24/7, giúp khách hàng giải đáp thắc mắc và giải quyết vấn đề kỹ thuật trong quá trình sử dụng.
- Cung cấp 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ị. Khách hàng có thể 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.
Với VPS Vietnix, bạn có thể yên tâm về việc chạy ứng dụng LAMP trên CentOS 7 một cách mượt mà, ổn định. Nhận tư vấn ngay.
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:
Với hơn 10 năm kinh nghiệm trong lĩnh vực cung cấp giải pháp Hosting, VPS, tên miền, Firewall anti DDoS,… Vietnix đã từng hợp tác với rất nhiều khách hàng cá nhân và doanh nghiệp lớn tại Việt Nam, như GTV, UB Group, iVIVU, Vietnamworks, SEOSONA hay SAGO Media. Tính đến thời điểm hiện tại, chúng tôi đã cung cấp hơn 100.000 dịch vụ và đạt được tỷ lệ giới thiệu dịch vụ sau khi sử dụng lên đến 97%, cho thấy khách hàng rất hài lòng với chất lượng dịch vụ của Vietnix. Nếu bạn đang muốn tập trung xây dựng thương hiệu, phát triển kinh doanh trên Internet, hãy để Vietnix cùng đồng hành và hỗ trợ bạn.
Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093 – 07 088 44444
- Email: sales@vietnix.com.vn
Lời kết
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é.