• Tools Online
    • Tạo CSR
    • SSL Checker
    • DNS Checker
    • View IP
    • Whois Domain
  • Diễn Đàn Hỏi Đáp
  • Profile
  • Ủng hộ
Đỗ Trung Quân
Banner
  • Home
  • Hướng dẫn chung
  • Linux
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
      • Rocky Linux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
      • Reverse Proxy
    • Virtualization
      • KVM
      • Proxmox
      • OpenVZ
    • Monitoring Tool
      • Prometheus
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Kubernetes
      • Jenkins
      • Cloud
        • GCP
        • AWS
        • Azure
    • Mail Server
    • Database
    • VPN
  • ControlPanel
    • cPanel
    • DirectAdmin
    • aaPanel
    • CyberPanel
    • VestaCP
    • FastPanel
    • CloudPanel
    • HestiaCP
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • Security
    • SSL
    • Firewall
  • Dịch Vụ
    • Thiết Kế Web
    • Dịch vụ cài đặt tối ưu VPS/Server
    • Cài đặt WordPress & Tối ưu WordPress
    • Dịch vụ xử lý mã độc trên WordPress
    • Xác minh cài đặt SSL
    • Dich vụ Backlink
  • Liên Hệ

Hướng dẫn cài LEMP Stack trên Ubuntu 22.04

by ĐỖ TRUNG QUÂN 18 Tháng Năm, 2022
written by ĐỖ TRUNG QUÂN Published: 18 Tháng Năm, 2022Last Updated on 20 Tháng Hai, 2023 3 comments 243 views

NỘI DUNG

  • Yêu cầu:
  • Thành phần được cài đặt trong bài viết này
  • Các bước cài LEMP Stack trên Ubuntu 22.04
    • Bước 1: SSH vào máy chủ VPS
    • Bước 2: Cập nhật hệ thống
    • Bước 3: Cài đặt NGINX webserver
    • Bước 4: Cài đặt cơ sở dữ liệu MariaDB
    • Bước 5: Cài đặt PHP
    • Bước 6: Thiết lập PHP Pools
    • Bước 7: Cài đặt phpMyAdmin
    • Bước 8: Cài đặt CertBot
    • Bước 9: Cài đặt WP-CLI
    • Bước 10: Cài đặt Redis Cache
  • Các bước cài đặt WordPress trên LEMP Stack Ubuntu 22.04
    • Bước 1: Tạo Database
    • Bước 2: Tạo file vhost NGINX domain
    • Bước 3: Tải core mã nguồn WordPress và cài đặt
    • Bước 4: Cài đặt chứng chỉ SSL cho website
    • Bước 5: Cài đặt Redis Cache cho website WordPress

Yêu cầu:

  • Máy chủ Ubuntu 22.04
  • IP public
  • Domain/subdomain đã trỏ về IP public để cài đặt SSL

Thành phần được cài đặt trong bài viết này

  • NGINX
  • MariaDB
  • PHP và các Module
  • PHP Pools (nâng cao)
  • phpMyAdmin (nâng cao)
  • CertBot (nâng cao)
  • WP-CLI (nâng cao)
  • Redis Cache (nâng cao)

Các bước cài LEMP Stack trên Ubuntu 22.04

Bước 1: SSH vào máy chủ VPS

Đầu tiên bạn hãy truy cập vào máy chủ bằng giao thức SSH. Nếu bạn chưa biết cách SSH bạn hãy tham khảo bài viết bên dưới.

Hướng dẫn đăng nhập vào VPS Linux với giao thức SSH.

Bước 2: Cập nhật hệ thống

apt update && apt upgrade

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

Thường NGINX mình sẽ combine, tuy nhiên ở bài này mình sẽ cài từ apt insall. Do combine sẽ mất khá nhiều thời gian

apt install nginx

Sau khi cài đặt xong NGINX bạn hãy khởi động và kích hoạt dịch vụ lên

systemctl enable nginx
systemctl start nginx
systemctl restart nginx
systemctl status nginx

Thông báo xuất hiện

root@ubuntu-2204:~# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-05-18 09:05:02 +07; 4h 48min ago
       Docs: man:nginx(8)
   Main PID: 27468 (nginx)
      Tasks: 2 (limit: 1034)
     Memory: 4.7M
        CPU: 454ms
     CGroup: /system.slice/nginx.service

Ngay bây giờ bạn hãy truy cập IP trên trình duyệt. Nếu hiện như ảnh bên dưới là đã cài NGINX thành công. Trường hợp nếu hệ thống bạn có trang bị Firewall. Bạn hãy mở port Firewall để dịch vụ lắng nghe.

  • Đối với iptables
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
  • Đối với UFW
ufw allow http
ufw allow https

Bước 4: Cài đặt cơ sở dữ liệu MariaDB

Mình sẽ sử dụng MariaDB làm máy chủ cơ sở dữ liệu. Bạn hãy cài đặt với lệnh sau.

apt install mysql-server

Sau khi cài đặt xong MariaDB xong, dịch vụ sẽ hoạt động. Và bạn có thể quản lý dịch vụ bằng các lệnh sau.

systemctl enable mariadb
systemctl restart mariadb
systemctl status mariadb

Thông báo xuất hiện

root@ubuntu-2204:~# systemctl status mariadb
● mariadb.service - MariaDB 10.6.7 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-05-16 13:10:48 +07; 2 days ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 17087 (mariadbd)

Cấu hình bảo mật MariaDB

mysql_secure_installation
Hướng dẫn cài LEMP Stack trên Ubuntu 22.04
  • Tạo file cấu hình đăng nhập mysql (không nhất thiết)
vi /etc/.my.cnf

Sau đó thêm vào nội dung này vào

[client]
password="passwd-root-mysql"
user=root
[mysqld]

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

Trong tập lệnh này mình sẽ chọn cài PHP 8.1 và các extension đi kèm.

apt install php8.1-fpm php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y

Bước 6: Thiết lập PHP Pools

Trong bài viết này mình sẽ tạo Pools tương ứng với wesbite và user. Nếu bạn có nhiều hơn 1 website thì bạn hãy tạo thêm các pool và user tương ứng.

  • Xoá file mặc định
rm -rf /etc/nginx/sites-enabled/default 
  • Tạo USER cho mỗi website

Mỗi trang web cần chạy với tư cách người dùng khác nhau vì mục đích bảo mật và độc lập. Vì vậy bạn hãy tạo các tài khoản người dùng và chỉ định người dùng www-data cho các nhóm tương ứng.

Điều này cho phép máy chủ web tương tác với người dùng và ngược lại. Không cấp cho người dùng khác nhau những đặc quyền đăng nhập hoặc liên kết bất kỳ thông tin nào. Để tạo người dùng, hãy chạy lệnh sau

useradd website1
usermod -a -G website1 www-data
  • Chỉ định quyền cho thư mục

Tiếp theo bạn hãy tạo thư mục cho web riêng biệt và gán quyền như sau

Lưu ý: Nếu bạn muốn thêm website hãy tạo user và thư mục tương ứng là được.

Các quyền của Unix là 770. Mỗi người dùng và nhóm liên kết của người dùng có đầy đủ quyền (7) trên thư mục. Cài đặt này hạn chế người dùng website1

mkdir -p /home/website1
chown -R website1:website1 /home/website1
chmod 770 /home/website1
  • PHP-FPM Pools

Bạn hãy copy pools php mặc định ra ra sửa lại như sau

cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/fpm-website1.conf
  • Xoá bỏ pool cũ đi
rm -rf /etc/php/8.1/fpm/pool.d/www.conf
  • Cấu hình Pools cho website 1

Mỗi groups sẽ có user liên kết với Unix socket. Vì vậy bạn cần mở từng file và sửa lại tương ứng như sau.

vi /etc/php/8.1/fpm/pool.d/fpm-website1.conf

Thay đổi các dòng sau:

  • Thay đổi dòng trên cùng, bên trong dấu ngoặc từ [www] sang [website1] cho pool 1
  • Thay đổi dòng user = www-data thành user = website1
  • Thay đổi dòng group = www-data thành group = website1
  • Thay đổi dòng listen = /run/php/php8.1-fpm.sock thành /run/php/php8.1-fpm-website1.sock
CleanShot 2022 05 18 at 14.44.25@2x

Sau khi hoàn tất bạn hãy khởi động lại php-fpm bằng lệnh sau

systemctl restart php8.1-fpm

Bước 7: Cài đặt phpMyAdmin

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

  • Cập nhật hệ thống và cài phpMyAdmin bằng lệnh sau
apt install phpmyadmin -y

Một hộp thoại xuất hiện hỏi bạn chọn webserver để cài. Nếu webserver bạn không có ở đây, bạn không tick và nhấn Tab để di chuyển xuống chữ OK để cài.

Hướng dẫn cài đặt LEMP Stack và WordPress từ A-Z

Một hộp thoại xuất hiện, hộp thoại này sẽ tạo một một người dùng với tên phpmyadmin và đặt mật khẩu cho người dùng này. Bạn chọn OK

Screenshot 2021 09 04 at 16.26.39

Sau đó đặt mật khẩu cho người dùng.

Screenshot 2021 09 04 at 16.27.50

Sau khi hoàn tất, một cơ sở dữ liệu mới có tên là phpmyadmin được tạo và người dùng cơ sở dữ liệu phpmyadmin có các đặc quyền cần thiết để quản lý cơ sở dữ liệu này. Bạn có thể đăng nhập vào MariaDB và kiểm tra những đặc quyền mà người dùng phpmyadmin đã được cấp.

mysql -u root
show grants for phpmyadmin@localhost;
Screenshot 2021 09 04 at 16.28.45
  • Tạo Nginx Server Block cho phpMyAdmin

Để truy cập phpmyadmin từ giao diện bạn cần tạo một file cấu hình như sau.

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

Sau đó thêm cấu hình bên dưới vào file. Và hãy thay pma.vpscanban.com bằng server_name của bạn.

server {
  listen 80;
  listen [::]:80;
  server_name pma.vpscanban.com;
  root /usr/share/phpmyadmin/;
  index index.php index.html index.htm;

  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:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

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

Thư mục phpMyAdmin nằm tại /usr/share/phpmyadmin/. Sau khi lưu xong bạn kiểm tra lại file cấu hình nginx xem có lỗi không bằng lệnh nginx -t

Bước 8: Cài đặt CertBot

Certbot là một ứng dụng Let’s Encrypt phổ biến nhất và có trong hầu hết các bản phân phối Linux chính, bao gồm khả năng cấu hình tự động thuận tiện cho Apache và Nginx. Sau khi cài đặt, tìm nạp chứng chỉ và cập nhật cấu hình Apache/Nginx của bạn.

Để cài đặt bạn thực hiện lệnh sau

apt install certbot python3-certbot-nginx

Python3-certbot-nginx là plugin Nginx cho Certbot. Bây giờ hãy chạy lệnh sau để lấy và cài đặt chứng chỉ TLS.

certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d example.com --email you@example.com

Chú thích:

  • Nginx: Sử dụng trình xác thực và trình cài đặt Nginx
  • Agree-tos: Đồng ý với các điều khoản dịch vụ của Let’s Encrypt
  • Redirect: Thực thi HTTPS bằng cách chuyển hướng 301.
  • Hsts: Thêm tiêu đề Nghiêm ngặt-Truyền tải-Bảo mật vào mọi phản hồi HTTP.
  • Staple-ocsp: Bật Ghim OCSP.
  • Must-staple: Thêm phần mở rộng OCSP Must Staple vào chứng chỉ.
  • -d được theo sau bởi một danh sách các tên miền, được phân tách bằng dấu phẩy. Bạn có thể thêm tối đa 100 tên miền.
  • Email: Email được sử dụng để đăng ký và liên hệ khôi phục.

Bước 9: Cài đặt WP-CLI

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
sudo mv wp-cli.phar /usr/local/bin/wp

Bước 10: 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.

  • Cài đặt Redis Server
apt install redis-server -y
  • Cấu hình Redis

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

Nếu RAM bạn nhiều và bạn muốn tăng cho Redis bạn hãy tăng ở giá trị maxmemory

maxmemory 256mb
maxmemory-policy allkeys-lru
  • Cài đặt Redis PHP Extension
apt install php-redis

Các bước cài đặt WordPress trên LEMP Stack Ubuntu 22.04

Bước 1: Tạo Database

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

mysql -u root -p
CREATE DATABASE website1;
CREATE USER 'user_website1'@'localhost' IDENTIFIED BY 'my-passswd';
GRANT ALL PRIVILEGES ON website1.* TO 'user_website1'@'localhost';

Bước 2: Tạo file vhost NGINX domain

vi /etc/nginx/sites-available/website1.conf

Lưu ý: Thay server_name vpscanban; bằng server_name của bạn

server {
    server_name vpscanban.com;

    access_log /var/log/nginx/website1.access.log;
    error_log /var/log/nginx/website1.error.log;

    root /home/website1;

    index index.php;

    try_files $uri $uri/ /index.php?$query_string;

    location ~ \.php$ {
            fastcgi_pass unix:/run/php/php8.1-fpm-website1.sock;
            include snippets/fastcgi-php.conf;
    }
}

Bước 3: Tải core mã nguồn WordPress và cài đặt

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.

cd /home/website1
wget https://wordpress.org/latest.zip
unzip latest.zip
mv /home/website1/wordpress/* /home/website1
chown -R website1:website1 /home/website1
anh 38

Bước 4: Cài đặt chứng chỉ SSL cho website

Lưu ý: Thay vpscanban.com bằng tên miền của bạn

certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d vpscanban.com --email you@vpscanban.com

Bước 5: Cài đặt Redis Cache cho website 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', 'vpscanban.com');

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

anh 39

Như vậy mình đã hoàn tất bài Hướng dẫn cài LEMP Stack trên Ubuntu 22.04. 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

5/5 - (1 bình chọn)

Hãy tham gia Nhóm Hỗ Trợ VPS Hosting để cùng học hỏi và trao đổi kiến thức nhé. Chúc bạn thành công.

LEMP StackUbuntu 22.04
Share 0 FacebookTwitterPinterestTelegramEmail
ĐỖ TRUNG QUÂN

Mình tên là Đỗ Trung Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn. Hiện tại mình là admin của Blog dotrungquan.info - linuxcanban.com - it.info.vn. Mới đây mình có tạo ra một Nhóm Hỗ Trợ VPS Hosting với mục đích gây dựng một cộng đồng nhỏ để mọi người trao đổi kinh nghiệm, kiến thức quản trị VPS. Các thủ thuật, mẹo vặt khi sử dụng VPS. Rất mong nhận được sự ủng hộ của các bạn.

Bạn sẽ thích bài viết này

Hướng dẫn cài đặt Ubuntu Server 20.04 LTS

17 Tháng Ba, 2023

Hướng dẫn nâng cấp Ubuntu 22.04 LTS lên...

22 Tháng Mười, 2022

Hướng dẫn cài đặt CentminMod trên CentOS 7

9 Tháng Năm, 2022

Hướng dẫn cấu hình HTTP/2 trên máy chủ...

20 Tháng Chín, 2021

Cài đặt Google PageSpeed module NGINX trên Ubuntu...

18 Tháng Chín, 2021

Hướng dẫn cài đặt Nginx Module Brotli trên...

10 Tháng Chín, 2021

Hướng dẫn cài đặt Elasticsearch trên Ubuntu 20.04

8 Tháng Chín, 2021

Hướng dẫn cài đặt Multi PHP trên Lemp...

7 Tháng Chín, 2021

Cài đặt Nginx FastCGI Cache để tối ưu...

5 Tháng Chín, 2021

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

5 Tháng Chín, 2021
Theo dõi
Đăng nhập
Thông báo của
guest

guest

3 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
wpdiscuz   wpDiscuz

Nhóm Hỗ Trợ Hosting VPS

Nhóm Hỗ Trợ VPS Hosting

Tin Khuyến Mãi

Thông tin về tôi

Thông tin về tôi

Mình tên là Đỗ Trung Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn.

Facebook Instagram Youtube Telegram

BÀI VIẾT PHỔ BIẾN

  • 1

    Hướng dẫn chuyển website WordPress bằng All in one Migration

  • 2

    Sử dụng Plugin Query Monitor để gỡ lỗi và tăng hiệu suất

  • 3

    Những tính năng mới trong WordPress 6.2

  • 4

    Khắc phục thông báo “utf8mb4 yêu cầu thư viện mới hơn” trên WordPress

Phản hồi gần đây

  • Minh trong Thiết lập nhiều website sử dụng chung một tài khoản MySQL
  • Lê Văn trong Hướng dẫn trỏ tên miền về Blogspot (blogger)
  • Quân trong Hướng dẫn cài đặt và cấu hình plugin W3 Total Cache cho website WordPress
  • Học Luật trong Sử dụng RSYNC để Clone một VPS hoàn chỉnh

Top Commentators

  • Anh Quân Anh Quân (133)
  • nghĩa nghĩa (8)
  • Bùi Đức Hiệp Bùi Đức Hiệp (7)
  • David Do David Do (7)
  • Bamboo Bamboo (5)
  • Bình Minh Bình Minh (5)
  • Cai Việt Hoàng Cai Việt Hoàng (5)
  • Duc Thuan Duc Thuan (5)

BẠN BÈ & ĐỐI TÁC

Thạch Phạm | aaPanel | Linux Căn Bản | Bảo Trần | Trương Quốc Cường | Đàm Trung Kiên | CaiSSL.com

Bạn được quyền sao chép lại nội dung trên website Đỗ Trung Quân, miễn là có dẫn nguồn.

Hosting/VPS được tài trợ bởi AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay

AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay


Back To Top
Đỗ Trung Quân
  • Home
  • Hướng dẫn chung
  • Linux
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
      • Rocky Linux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
      • Reverse Proxy
    • Virtualization
      • KVM
      • Proxmox
      • OpenVZ
    • Monitoring Tool
      • Prometheus
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Kubernetes
      • Jenkins
      • Cloud
        • GCP
        • AWS
        • Azure
    • Mail Server
    • Database
    • VPN
  • ControlPanel
    • cPanel
    • DirectAdmin
    • aaPanel
    • CyberPanel
    • VestaCP
    • FastPanel
    • CloudPanel
    • HestiaCP
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • Security
    • SSL
    • Firewall
  • Dịch Vụ
    • Thiết Kế Web
    • Dịch vụ cài đặt tối ưu VPS/Server
    • Cài đặt WordPress & Tối ưu WordPress
    • Dịch vụ xử lý mã độc trên WordPress
    • Xác minh cài đặt SSL
    • Dich vụ Backlink
  • Liên Hệ
wpDiscuz