Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z

Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 50

Xin chào các bạn đang xem bài viết của mình. Nối tiếp các cách cài đặt LEMP Stack, thì ở bài viết này mình xin chia sẻ cách cài đặt LEMP Stack trên máy chủ AlmaLinux 8.

AlmaLinux 8 hiện tại rất phổ biến khi CentOS 8 và CentOS 8 trong tương lai sẽ ngừng hỗ trợ. AlmaLinux là bản được CloudLinux phát triển miễn phí cho cộng đồng sử dụng.

Để Cài đặt LEMP Stack trên AlmaLinux 8 thì không quá khó, cấu trúc và tập lệnh sử dụng cũng tương tự với CentOS. Ở trong bài này mình sẽ cài đặt LEMP Stack và một số thành phần phụ nhưng cần thiết khi xây dựng website.

Các thành phần được cài đặt

  • NGINX
  • MariaDB
  • PHP-FPM
  • phpMyAdmin
  • WordPress
  • Certbot
  • Redis Cache

Các bước cài đặt LEMP Stack trên AlmaLinux từ A-Z

1. Cài đặt máy chủ web NGINX trên AlmaLinux

Cập nhật hệ thống

dnf update -y

Cài đặt NGINX

dnf install nginx -y
Screenshot 2021 09 22 at 11.16.17
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 51

Sau khi cài xong NGINX bạn kích hoạt và khởi động NGINX lên

systemctl enable nginx
systemctl start nginx
systemctl status nginx
Screenshot 2021 09 22 at 10.27.23
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 52

Mở port trên hệ thống Firewall

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

Sau khi mở port HTTP xong, bạn hãy mở trình duyệt và truy cập từ IP để kiểm tra. Nếu hiện như ảnh bên dưới là đã thành công.

Screenshot 2021 09 22 at 10.28.47
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 53

2. Cài đặt MariaDB trên AlmaLinux

Mình sẽ cài đặt bản MariaDB 10.5 để sử dụng. Trước khi cài bạn hãy tạo một file MariaDB.repo với nội dung như sau

Tạo file MariaDB.repo

vi /etc/yum.repos.d/MariaDB.repo

Sau đó bạn thêm nội dung sau vào

# MariaDB 10.5 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/rhel8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Cập nhật lại hệ thống

dnf update -y

Cài đặt MariaDB 10.5

dnf install MariaDB-server MariaDB-client -y

Kích hoạt và khởi động dịch vụ

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

Kiểm tra phiên bản MariaDB vừa cài đặt

mysql -V
Screenshot 2021 09 22 at 11.06.25
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 54

Kích hoạt bảo mật máy chủ cơ sở dữ liệu

mysql_secure_installation
Screenshot 2021 09 22 at 11.22.15
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 55

Mở port trên firewall

firewall-cmd --permanent --add-service=mysql
irewall-cmd --reload

3. Cài đặt PHP-FPM trên AlmaLinux

Thêm EPEL(Extra Packages for Enterprise Linux)

dnf install epel-release -y

Cài đặt Remi repository

dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Screenshot 2021 09 22 at 11.26.28
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 56

Tiếp theo, hãy xem các module PHP có sẵn bằng cách chạy lệnh này. Tại đây bạn có thể chọn phiên bản PHP nào bạn muốn cài đặt.

dnf module list php
Screenshot 2021 09 22 at 11.29.08
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 57

Tiếp theo bạn thực hiện chạy lệnh sau để cài đặt

dnf module reset php -y
dnf module enable php:remi-8.0 -y

Cài đặt PHP

dnf install php php-fpm -y

Sau khi cài xong bạn kiểm tra lại với lệnh php -v

Screenshot 2021 09 22 at 11.33.24
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 58

Cài đặt một số Extension cần thiết

dnf install php  php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-opcache php-soap 
 php-common

Sau khi cài xong bạn có thể kiểm tra lại với lệnh php --modules

Bây giờ bạn hãy mở file cấu hình php-fpm và sửa lại các dòng sau

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

Bạn tìm dòng sau và sửa lại

user = apache sửa thành user = nginx
group = apache sửa thành group = nginx

Sau đó thêm vào dòng sau

listen = /var/run/php-fpm/php-fpm.sock

Kích hoạt và khởi động dịch vụ PHP-FPM

systemctl start php-fpm && systemctl enable php-fpm

4. Cài đặt phpMyAdmin trên AlmaLinux

phpMyAdmin là một ứng dụng dùng để quản lý cơ sở dữ liệu dưới dạng giao diện. Giúp bạn quản lý Database trực quan hơn. Từ đó dễ dàng kiểm soát và quản lý. Để cài đặt bạn hãy thực hiện như sau

Kích hoạt EPEL và REMI repository

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
dnf install http://rpms.remirepo.net/enterprise/8/remi/x86_64/php-fedora-autoloader-1.0.0-5.el8.remi.noarch.rpm -y

Cài đặt phpMyAdmin

dnf --enablerepo=remi install phpMyAdmin -y

Tạo vhost

vi /etc/nginx/conf.d/phpmyadmin.conf

Sau đó bạn nhập vào nội dung sau

server {
  listen 80;
  listen [::]:80;
  server_name pma.dotrungquan.info;
  root /usr/share/phpMyAdmin;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ /\.ht {
    deny all;
  }
}

Khởi động lại dịch vụ

systemctl restart php-fpm
systemctl restart nginx

Bây giờ bạn hãy truy cập vào http://server-ip/phpMyAdmin/để kiểm tra nhé.

Screenshot 2021 09 22 at 12.06.07
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 59

5. Tạo website WordPress trên AlmaLinux

5.1. Tạo cơ sở dữ liệu và người dùng

Bạn hãy truy cập vào mysql và tạo database mới cho website.

mysql -u root -p
CREATE DATABASE database_name;
CREATE USER 'user_database'@'localhost' IDENTIFIED BY 'my-password';
GRANT ALL PRIVILEGES ON database_name.* TO 'user_database'@'localhost'; 
Screenshot 2021 09 22 at 12.12.05
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 60

5.2. Tải mã nguồn WordPress

Bạn hãy di chuyển vào thư mục sau đó tải về mã nguồn từ trang chủ. Mình sẽ chủ thích từng lệnh sau.

mkdir -p  /var/www/site1
cd /var/www/site1
wget https://wordpress.org/wordpress-5.8.zip
unzip wordpress-5.8.zip
mv /var/www/site1/worpdress/* /var/www/site1
chown -R nginx:nginx /var/www/site1
  • Lệnh 1: Tạo thư mục lưu trữ
  • Lệnh 2: di chuyển vào thư mục Document root của website, tuỳ vào cách cấu hình mã bạn hãy đặt tương ứng
  • Lệnh 3: Tải mã nguồn wordpress về bằng lệnh wget
  • Lệnh 4: Giải nén file ra
  • Lệnh 5: Vơi mã nguồn download từ trang chủ, khi giải nén nó sẵn bên trong một thư mục là wordpress. Vì vậy cần di chuyển ra document root.
  • Lệnh 6: Chỉnh lại Owner tương ứng cho user:group

5.3. Tạo vhost cho website

Để web có thể truy cập. Bạn cần tạo vhost và khai báo thông tin.

vi /etc/nginx/conf.d/site1.conf

Sau đó bạn dán vào cấu hình mẫu sau và lưu ý hãy thay những dòng này

  • root /var/www/site1 : Đường dẫn lưu trữ mã nguồn
  • server_name : thay vào tên website của bạn
  • access_log: Log lưu truy cập
  • error_log: Log lưu lỗi
server {
    listen  80;
    server_name  site1.dotrungquan.info;

    root   /var/www/site1;
    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/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Sau đó kiểm tra lại cấu hình nginx xem có lỗi không bằng lệnh nginx -t. Nếu không lỗi thì khởi động lại nginx.

Bây giờ bạn hãy truy cập vào domain/subdomain và cài đặt WordPress

Screenshot 2021 09 22 at 12.44.05
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 61

Nhập vào thông tin Database đã tạo ở bước 5.1

Screenshot 2021 09 22 at 12.45.02
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 62
Screenshot 2021 09 22 at 12.46.09
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 63

6. Cài đặt Cerbot trên AlmaLinux

Cập nhật hệ thống vào cài epel-release

dnf update -y
dnf install epel-release -y

Cài đặt Cerbot trên NGINX

dnf install certbot python3-certbot-nginx -y
Screenshot 2021 09 22 at 12.54.51
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 64

Cài đặt SSL cho website với Certbot

Lưu ý: SSL sẽ cài thành công khi tên miền bạn đã trỏ về IP VPS.

certbot --nginx
Screenshot 2021 09 22 at 12.58.06
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 65

Cấu hình mở port trên Firewall

HTTPS sẽ chạy với port 443. Vì vậy bạn cần mở port này cho nó hoạt động.

firewall-cmd --permanent --add-port=443/tcp --zone=public
firewall-cmd --reload

Sau đó bạn truy cập lại website với giao thức https://my-domain để kiểm tra SSL nhé.

Screenshot 2021 09 22 at 12.59.06
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 66

Để chạy với HTTP/2 bạn hãy mở lại vhost của domain. Tìm block 443 và thêm vào http2 sau 443 như ảnh đính kèm

Screenshot 2021 09 22 at 13.17.43
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 67

Và truy cập vào trang HTTP/2 Test – Verify HTTP/2 Support | KeyCDN Tools để kiểm tra

Screenshot 2021 09 22 at 13.19.22
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 68

7. Cài đặt WP-CLI để quản trị WordPress (không quan trọng)

WP-CLI là một tính năng được ra đời và phát triển từ những năm 2011 , với WP-CLI bạn có thể dễ dàng thao tác quản lý website WordPress của mình một cách đơn giản thông qua giao diện dòng lệnh (Command). Với cách thức thông thường , khi các bạn cần cài đặt Plugins, Themes, hay chỉnh sửa liên quan đến WordPress các bạn cần phải truy cập vào trình quản trị WordPress và thực hiện các thao tác bằng cách click chuột.

Để cài đặt bạn hãy nhập các lệnh như sau.

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

Ảnh minh qua sử dụng wp-cli để xem theme, plugin và user.

Screenshot 2021 09 22 at 13.01.37
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 69

8. Cài đặt Redis Cache

Redis là phần mềm một mã nguồn mở được dùng để lưu trữ dữ liệu có cấu trúc, có thể sử dụng như một database, bộ nhớ cache hay một message broker. Nó là hệ thống lưu trữ dữ liệu với dạng KEY-VALUE rất mạnh mẽ và phổ biến hiện nay. Redis nổi bật bởi nó hỗ trợ nhiều cấu trúc dữ liệu cơ bản như: hash, list, set, sorted set, string. Tất cả dữ liệu được ghi lại và lưu trên RAM, do đó tốc độ đọc ghi dữ liệu sẽ rất nhanh.

Browser Page Object Cache Levels 1024x585 1
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 70

8.1. Cài đặt Redis

dnf update -y
dnf install redis -y

Bạn hãy mở file redis.conf, tìm các dòng dong và sửa lại.

vi /etc/redis/redis.conf
maxmemory 256mb
maxmemory-policy allkeys-lru

Khởi động và kích hoạt Redis

systemctl start redis
systemctl enable redis
systemctl status redis
Screenshot 2021 09 22 at 13.07.27
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 71

8.3. Cài đặt PHP Extension

dnf install php-redis -y

Sau khi cài xong bạn có thể tạo một file info.php bên trong mã nguồn để kiểm tra. Bên dưới là cú pháp của file info.php

Screenshot 2021 09 22 at 13.09.58
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 72

8.4. Cài đặt Redis trên WordPress

Để cài đặt redis trên wordpress, bạn hãy cài đặt một Pluginc ó tên là Redis Object Cache. Sau đó mở file wp-config.php và thêm vào đoạn sau.

define('WP_CACHE_KEY_SALT', 'site1.dotrungquan.info');

Tiếp đến bạn vào admin WordPPress, Settings => Redis và kích hoạt lên.

Screenshot 2021 09 22 at 13.13.50
Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z 73

Như vậy mình đã hoàn tất bài Hướng dẫn Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z. Hy vọng bài viết trên sẽ giúp các bạn cài đặt một máy chủ web riêng thành công.

Ở bài viết tiếp theo, mình sẽ hướng dẫn bạn thiết lập NGINX FastCGI cache trên WordPress để tối ưu hiệu xuất cho website. Rất mong được sử ủng hộ của các bạn.

Chúc bạn thực hiện thành công.