Mục lục bài viết

aaPanel

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

phongdh
phongdh
Chia sẻ:
Zalo
Hướng dẫn cài đặt LEMP Stack trên Ubuntu

LEMP Stack là gì?

LEMP là từ viết tắt của Linux, Nginx, MySQL, PHP(hay Perl hoặc Python), để tạo nên một môi trường máy chủ Web có khả năng chứa và phân phối các trang Web động. Bốn phần mềm nói trên tạo thành một gói phần mềm LEMP.

Cài đặt LEMP Stack.

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

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.

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

apt update && apt upgrade

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

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
webserver NGINX trong LEMP Stack

Với thông báo Active: active (running) cho thấy nginx đã hoạt động.

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 mariadb-server mariadb-client -y

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

Với thông báo Active: active (running) cho thấy mariadb đã hoạt động.

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

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

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

apt install php7.4-fpm php7.4 php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl php7.4-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/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/fpm-website1.conf
  • Xoá bỏ pool cũ đi
rm -rf /etc/php/7.4/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/7.4/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/php7.4-fpm.sock thành /run/php/php7.4-fpm-website1.sock

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

systemctl restart php7.4-fpm
PHP7.4 trong LEMP Stack

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à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.

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

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

Sau khi chọn OK một hộp thoại hiện lên và yêu cầu nhập lại mật khẩu bạn vừa đặt để xác nhận.

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;
  • 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 phpmyadmin.phongdinh.id.vn bằng server_name của bạn.

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ạn có thể truy cập phpMyadmin trên trình duyệt web để kiểm tra.

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 [email protected]

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

Sau khi cai đặt bạn có thể kiểm tra bằng lệnh sau

wp --version --allow-root

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 sau 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 512mb
maxmemory-policy allkeys-lru
  • Cài đặt Redis PHP Extension

Để cài đặt Redis PHP Extension bạn dùng lệnh sau:

apt install php-redis

Ở các bước trên bạn đã hoàn tất cài đặt LEMP Stack trên Ubuntu, kèm theo các dịch vụ như phpMyAdmin, CertBot, WP-CLI, Redis Cache.

Trong bài viết tiếp theo mình hướn dẫn bạn cài đặt WordPress trên LEMP Stack hoặc upload mã nguồn website đã có sẵn lên LEMP Stack.

Chia sẻ:
Zalo
Tags:
Không có thẻ
phongdh

phongdh

Content Creator

Chào mọi người, mình là Phong - hiện đang công tác tại Phòng Kỹ thuật AZDIGI. Trong quá trình làm việc mình có cơ hội được tiếp xúc với khá nhiều các vấn đề liên quan đến Website/Email/Hosting/VPS/Server, do đó mình viết lại các hướng dẫn này nhằm chia sẻ kiến thức, cũng như tạo một môi trường để chúng ta giao lưu và học hỏi lẫn nhau.

Kết nối:

Bài viết liên quan

Những bài viết bạn có thể quan tâm

Thảo luận

0 bình luận cho bài viết này

* Địa chỉ email của bạn sẽ được bảo mật và không hiển thị công khai.

Chưa có bình luận nào

Hãy là người đầu tiên chia sẻ góc nhìn của bạn về bài viết này nhé!

Zalo

Nhập từ khóa để tìm kiếm...

0 kết quả

CHUYÊN MỤC LIÊN QUAN