Hướng dẫn cài đặt LEMP stack trên CentOS 8

30/12/2020

LEMP là một nhóm các phần mềm có thể dùng để phục vụ các web động được viết bằng PHP. LEMP bao gồm một hệ điều hành Linux, web server Nginx, hệ quản trị cơ sở dữ liệu MySQL hoặc MariaDB và ngôn ngữ lập trình PHP. Trong bài viết này Cloud356 sẽ hướng dẫn bạn cách cài đặt LEMP stack trên CentOS 8 sử dụng MariaDB làm hệ quản trị cơ sở dữ liệu.

Chuẩn bị

Chuẩn bị một máy cài đặt hệ điều hành CentOS 8. Sử dụng user root để cài đặt.

Cài đặt

Bước 1: Cài đặt Nginx

Sử dụng trình quản lý gói dnf để cài đặt Nginx. Đây là trình quản lý gói mặc định trên CentOS 8

dnf install nginx

Sau khi cài đặt xong sử dụng lệnh sau để bật và enable nginx:

systemctl start nginx systemctl enable nginx

Nếu bạn đang sử dụng firewalld bạn cần mở port để cho phép truy cập nginx

firewall-cmd --permanent --add-service=http firewall-cmd --reload

Truy cập địa IP của bạn tren trình duyệt bạn sẽ thấy giao diện mặc định của Nginx

Nếu bạn thấy trang này thì máy chủ web của bạn đã được cài đặt.

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

Chúng ta cần cài đặt một hệ quản trị cơ sở dữ liệu để lưu trữ và quản lý dữ liệu cho trang web của bạn

dnf install mariadb-server

Sau khi cài đặt xong sử dụng lệnh sau để bật và enable MariaDB

systemctl start mariadb systemctl enable mariadb

Chạy lệnh sau để thiết lập cấu hình ban đầu cho user root của mariadb

mysql_secure_installation

Bạn sẽ được hỏi password của root. Nếu bạn mới cài mariadb thì bạn chỉ cần Enter để bỏ qua. Để đảm bảo tính bảo mật bạn nên đặt password cho tài khoản root

[root@localhost ~]# mysql_secure_installation  NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!  In order to log into MariaDB to secure it, we'll need the current password for the root user.  If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here.  Enter current password for root (enter for none):  OK, successfully used password, moving on...  Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.  Set root password? [Y/n] Y New password:  Re-enter new password:  Password updated successfully! Reloading privilege tables..  ... Success!   By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them.  This is intended only for testing, and to make the installation go a bit smoother.  You should remove them before moving into a production environment.  Remove anonymous users? [Y/n] Y  ... Success!  Normally, root should only be allowed to connect from 'localhost'.  This ensures that someone cannot guess at the root password from the network.  Disallow root login remotely? [Y/n] Y  ... Success!  By default, MariaDB comes with a database named 'test' that anyone can access.  This is also intended only for testing, and should be removed before moving into a production environment.  Remove test database and access to it? [Y/n] Y  - Dropping test database...  ... Success!  - Removing privileges on test database...  ... Success!  Reloading the privilege tables will ensure that all changes made so far will take effect immediately.  Reload privilege tables now? [Y/n] Y  ... Success!  Cleaning up...  All done!  If you've completed all of the above steps, your MariaDB installation should now be secure.  Thanks for using MariaDB! 

Bây giờ thử đăng nhập với user root và password đặt ở bên trên

[root@localhost ~]# mysql -u root -p Enter password:  Welcome to the MariaDB monitor.  Commands end with ; or g. Your MariaDB connection id is 16 Server version: 10.3.17-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.  MariaDB [(none)]>  

Đến đây việc cài đặt hệ quản trị cơ sở dữ liệu đã xong. Bây giờ chuyển sang cài đặt thành phần cuối cùng của bộ LEMP stack là PHP

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

Bạn đã cài đặt Nginx làm web server, MariaDB để lưu trữ và quản lý dữ liệu. Bây giờ bạn cần cài đặt PHP để xử lý code và tạo nội dung động cho trang web của bạn.

Cài đặt php-fpmphp-mysqlnd

dnf install php-fpm php-mysqlnd

php-fpm có chức năng nói với Nginx chuyển các request PHP tới nó để xử lý. Còn php-mysqlnd cho phép PHP kết nối đến database.

Sau khi cài đặt xong ta cần phải thực hiện một số thay đổi về cấu hình để yêu cầu Nginx sử dụng PHP để xử lý nội dung.

sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf

Bật và enable php-fpm

systemctl start php-fpm systemctl enable php-fpm

Khởi động lại nginx để load lại cấu hình của php-fpm

systemctl restart nginx

Đến đây bạn đã cài đặt đầy đủ các thành phần cuả LEMP stack. Tiếp theo chúng ta sẽ sử dụng một script PHP để kiểm tra xem liệu nó có hoạt động như mong đợi.

Bước 4: Kiểm tra

Mặc định thư mục gốc cuả trang web sẽ là /usr/share/nginx/html. Bạn cũng có thể thay đổi thư mục này.

Tạo file info.php

cat <<EOF > /usr/share/nginx/html/info.php <?php  phpinfo(); EOF

Bây giờ mở trình duyệt và truy cập đường dẫn http://ip_server/info.php. Nếu bạn thấy kết quả trả về như sau

Sau khi kiểm test xong thì nên xóa file này đi

rm /usr/share/nginx/html/info.php

Đến đây việc cài đặt đã thành công. Bạn có thể tham khảo cách cài đặt bộ công cụ này trên một số hệ điều hành khác tại đây.

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

[linux_basic] Quản trị Users and Groups

Trong bài viết này, mình sẽ giúp các bạn hiểu rõ hơn về cấu trúc user và group trong hệ điều hành...
30/12/2020

[Apache Tomcat] Làm thế nào để chạy ở cổng 80

Bài viết này sẽ hướng dẫn cho bạn vài cách để có thể thay đổi cổng khi chạy apache tomcat,...
30/12/2020

Cách mở Port Remote Access MySQL trên centos và ubuntu

Hướng dẫn kích hoạt Remote Access MySQL 1. Thay đổi cấu hình MySQL ***Lưu ý: bước này không cần làm...
14/01/2021