Home Máy chủ LinuxWeb Server Hướng dẫn cài đặt LEMP Stack trên Centos 7

Hướng dẫn cài đặt LEMP Stack trên Centos 7

by Thạch Phạm
Published: Last Updated on
A+A-
Reset

Hướng dẫn cài đặt LEMP Stack trên CentOS 7 đơn giản cùng với AZDIGI.

I. Giới thiệu

LEMP là chữ viết tắt thường được dùng để chỉ sự sử dụng các phần mềm Linux, Nginx, MySQL/MariaDB và PHP/PHP-FPM để tạo nên một môi trường máy chủ Web giúp triển khai các website trên môi trường Internet.

Các chức năng cụ thể các bạn có thể hiểu nhanh là LEMP hoạt động từ các phần mềm Linux, với máy chủ web là Nginx, máy chủ cơ sở dữ liệu MariaDB hoặc MySQL và nội dung file động được xử lý bởi PHP.

LEMP là dạng mã nguồn mở với lợi thế miễn phí, nên các năm gần đây LEMP luôn được cộng động tin tưởng sử dụng bởi tính ổn định, dễ dàng cài đặt cũng như dễ dàng vận hành. Nhìn chung LEMP cũng tương tự như LAMP , chỉ khác là webserver sử dụng Nginx thay vì Apache.

Cụ thể cách cài đặt LEMP như thế nào và có gì khác với LAMP, thì mời các bạn xem tiếp phần II.

II. Hướng dẫn cài đặt

Để cài đặt LEMP các bạn có thể thực hiện cài đặt với 5 bước sau.

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

Giống với Apache , máy chủ web Nginx là một trong những máy chủ web phổ biến nhất trên thế giới. Nó đã được ghi chép đầy đủ và được sử dụng rộng rãi trong một thời gian dài, điều này khiến cho Nginx trở thành một lựa chọn mặc định tuyệt vời để lưu trữ một website.

  • Vì NGINX không có sẵn repository của CentOS vì vậy chúng ta phải cài repository EPEL​ với câu lệnh sau: 
AZDIGI Tutorial
yum install epel-release -y
    
  • Cài đặt Nginx
AZDIGI Tutorial
yum install nginx -y
    
Hướng dẫn cài đặt LEMP Stack trên Centos 7
Như hình là ta đã cài đặt thành công Nginx
  • Sau khi cài đặt hoàn tất, các bạn có thể sử dụng các lệnh sau để quản lý Nginx
AZDIGI Tutorial
systemctl start nginx      (Khởi động dịch vụ Nginx)
systemctl stop nginx       (Dừng dịch vụ Nginx)
systemctl reload nginx     (Tải lại dịch vụ Nginx)
systemctl restart nginx    (Khởi động lại  dịch vụ Nginx:)
systemctl enable nginx     (Thiết lập Nginx khởi động cùng hệ thống)
systemctl disable nginx    (Vô hiệu hoá Nginx khởi động cùng hệ thống )
systemctl status nginx     (Xem trạng thái dịch vụ Nginx)
    
lemp1

Mặc định trên Centos 7 sẽ sử dụng tường lửa là Firewalld, nên các bạn cần thực hiện mở Port dịch vụ với Firewalld theo các cách sau:

AZDIGI Tutorial
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload      (Reload lại Firewalld) 
    

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

Để cài đặt MariaDB các bạn chạy lệnh sau.

AZDIGI Tutorial
yum install -y mariadb mariadb-server
    

Sau khi cài đặt hoàn tất, các bạn có thể sử dụng các lệnh sau để quản lý MariaDB

AZDIGI Tutorial
systemctl start mariadb      (Khởi động dịch vụ mariadb)
systemctl stop mariadb      (Dừng dịch vụ mariadb)
systemctl restart mariadb    (Khởi động lại  dịch vụ mariadb)
systemctl enable mariadb     (Thiết lập mariadb khởi động cùng hệ thống)
systemctl disable mariadb    (Vô hiệu hoá mariadb khởi động cùng hệ thống )
systemctl status mariadb     (Xem trạng thái dịch vụ mariadb)
    
Hướng dẫn cài đặt LEMP Stack trên Centos 7

Lưu ý: File cấu hình chính của MariaDB là file /etc/my.conf

Thiết lập bảo mật MariaDB Server

[root@template ~]# 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): (Nhấn Enter)
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:    (Nhập password root mysql mới)
Re-enter new password: (Nhập lại 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ước 3: Cài đặt PHP-FPM và các Module

Phiên bản PHP có sẵn CentOS 7 là các bản cũ và đã lỗi thời và vì lý do đó, các bạn nên cài đặt kho lưu trữ gói của bên thứ ba để có thể sử dụng các phiên bản PHP mới nhất . Và Remi là kho lưu trữ gói phổ biến cung cấp các bản phát hành PHP mới nhất cho các máy chủ CentOS.

  • Để cài đặt kho Remi các bạn chạy lệnh sau.
AZDIGI Tutorial
yum -y install yum-utils
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    
  • Sau khi cài đặt gói Remi xong, các bạn cần chọn phiên bản PHP mà mình cần cài đặt và kích hoạt gói chứa phiên bản PHP đó. Ở hướng dẫn này mình sẽ cài đặt PHP 8.0 nên sẽ kích hoạt gói bằng lệnh sau.
AZDIGI Tutorial
yum-config-manager --enable remi-php80
    

Lưu ý: Ở số 80 (tương ứng PHP 8.0), bạn có thể thay thế bằng phiên bản PHP bạn muốn (Ví dụ: 72 – 73 74 tương ứng 7.2 –7.3 – 7.4..)

  • Khi module remi-80 của PHP đã được bật, bạn có thể tiến hành cài đặt PHP và các PHP Extension cần thiết bằng lệnh bên dưới.
AZDIGI Tutorial
yum install -y php php-fpm php-ldap php-zip php-embedded php-cli php-mysql php-common php-gd php-xml php-mbstring php-mcrypt php-pdo php-soap php-json php-simplexml php-process php-curl php-bcmath php-snmp php-pspell php-gmp php-intl php-imap perl-LWP-Protocol-https php-pear-Net-SMTP php-enchant php-pear php-devel php-zlib php-xmlrpc php-tidy php-opcache php-cli php-pecl-zip unzip gcc
    
  • Kiểm tra phiên bản PHP vừa cài đặt bằng lệnh.
AZDIGI Tutorial
php -v
    

Như hiển thị trên thì đã cài đặt thành công PHP 8.0 rồi nhé.

[root@template ~]# php -v
PHP 8.0.1 (cli) (built: Jan  5 2021 13:54:54) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.1, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.1, Copyright (c), by Zend Technologies
[root@template ~]# 

Xem thêm:

  • Mặc định PHP sẽ thực thi file PHP gần nhất nếu không tìm thấy file php được request. Để ngăn chặn việc thực thi PHP không mong muốn các bạn thay đổi cấu hình như sau.
AZDIGI Tutorial
vi /etc/php.ini
    

Các bạn tìm và thay thế các dòng sau

cgi.fix_pathinfo=1  =>  cgi.fix_pathinfo=0
  • Tiếp theo ta thực hiện điều chỉnh lại cấu hình mặc định như sau.

Mở và chỉnh sửa file cấu hình /etc/php-fpm.d/www.conf bằng lệnh sau

AZDIGI Tutorial
vi /etc/php-fpm.d/www.conf 
    

Các bạn tìm và thay thế các dòng sau

;listen = 127.0.0.1:9000   => listen = /var/run/php_fpm.sock
;listen.owner = nobody     => listen.owner = nginx
;listen.group = nobody     => listen.group = nginx
user = apache              => user = nginx
group = apache             => group = nginx

Điều chỉnh xong bạn Save lại bằng cách gõ :x

  • Bảo mật php_fpm.sock với câu lệnh sau: 
AZDIGI Tutorial
chmod 666 /var/run/php_fpm.sock
chown nginx:nginx /var/run/php_fpm.sock
    
  • Khởi động PHP-FPM sau khi đã hoàn tất chỉnh sửa cấu hình bằng lệnh.
AZDIGI Tutorial
systemctl start php-fpm
systemctl enable php-fpm
    

Bước 4: Cầu hình NGINX

  • Để cấu hình Nginx xử lý , các bạn cần chỉnh sửa cấu hình file default.conf tại đường dẫn /etc/nginx/conf.d/default.conf bằng lệnh.
AZDIGI Tutorial
vi /etc/nginx/conf.d/default.conf
    
  • Copy và dán đoạn dưới đây vào file default.conf (Bạn nhớ thay server_domain_or_IP bằng IP hoặc Domain của bạn)
server {
    listen  80;
    server_name  server_domain_or_IP;

    root   /var/www/html/;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php_fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  • Lưu lại cấu hình (gõ :x) và khởi động lại Nginx
AZDIGI Tutorial
systemctl restart nginx
    

Bước 5: Kiểm tra hoạt động website

Sau khi đã cấu hình hoàn tất Virtual Host và tạo folder website hoàn tất, các bạn kiểm tra nhanh xem website của mình có hoạt động hay không bằng cách tạo thử file index.php bằng lệnh sau

AZDIGI Tutorial
touch /var/www/html/index.html | echo 'Cai dat thanh cong LEMP' >  /var/www/html/index.html
    

Tạo xong file các bạn ra trình duyệt bất kỳ và gõ tên website để kiểm tra, như hiển thị bên dưới là website của mình đã hoạt động.

Hướng dẫn cài đặt LEMP Stack trên Centos 7

Xem thêm: Thiết lập Nginx FastCGI Cache trên NGINX giảm thời gian phản hồi máy chủ

III. Tổng kết

Như vậy, ở bài viết này AZDIGI đã hướng dẫn bạn cách cài đặt LEMP lên máy chủ sử dụng Centos 7 hoàn tất một cách chi tiết nhất. Việc cài đặt LEMP sẽ giúp bạn có một máy chủ để vận hành website một cách ổn định và trơn tru nhất. Do LEMP chỉ cài đặt các dịch vụ cần thiết để sử dụng Website , điều đó có nghĩa là nó sẽ loại bỏ được các dịch vụ không cần thiết để tài nguyên VPS có thể tập trung tối đa cho việc vận hành website. Hy vọng bài viết này sẽ giúp bạn cài đặt thành công.!

Nếu thấy bài viết hữu ích, hãy chia sẻ rộng rãi đến mọi người để cùng biết cách cài đặt nhé. Ngoài ra Các bạn có thể xem qua một số bài viết khác về kiến thức Linux tại link bên dưới

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:

5/5 - (1 vote)

Tham gia nhóm hỗ trợ Server - Hosting

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay

Bài viết cùng chuyên mục

AZDIGI – Không chỉ là đơn vị hàng đầu trong lĩnh vực Web Hosting và Máy chủ, chúng tôi mong muốn mang lại những kiến thức bổ ích nhất và luôn cập nhật thường xuyên cho cộng đồng người đam mê thiết kế website, công nghệ,…

Vui lòng không sao chép nội dung nếu chưa xin phép. Designed and Developed by PenciDesign