Giới thiệu

LEMP stack là gì?

LEMP stack là một bộ software mã nguồn mở được sử dụng để phát triển ứng dụng web. Để một ứng dụng web hoạt động trơn tru, nó phải bao gồm hệ điều hành, web server, database và ngôn ngữ lập trình. Tên LEMP là từ viết tắt của các program sau:

  • Hệ điều hành Linux
  • Nginx WebServer
  • Hệ quản trị database MySQL 
  • Ngôn ngữ lập trình PHP

Ở bài viết này mình sẽ hướng dẫn các bạn cài đặt LEMP Stack lên máy chủ buntu 22.04. Chi tiết các bước mời các bạn xem tiếp phần Hướng dẫn cài đặt bên dưới.

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

Đầu tiên hãy SSH vào máy chủ của bạn với quyền Root và thực hiện cài đặt các dịch vụ sau

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

  • Cập nhật hệ thống


NGUYENCANHSON.COM
sudo apt update -y && apt upgrade -y
    
  • Cài đặt Nginx


NGUYENCANHSON.COM
sudo apt-get install nginx -y
    
  • Một số lệnh quản lý Nginx


NGUYENCANHSON.COM
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)
    
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 70

Bạn có thể kiểm tra hoạt động của Nginx bằng cách truy cập IP máy chủ ra trình duyệt, nếu hiển thị như ảnh dưới là thành công.

Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 71
  • Mở Port 80 (HTTP) với tường lửa

Với iptables



NGUYENCANHSON.COM
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    

Với Firewall UFW



NGUYENCANHSON.COM
ufw allow http
    

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

  • Cài đặt MariaDB Database Server


NGUYENCANHSON.COM
sudo apt install -y mariadb-server mariadb-client
    
  • Một số lệnh quản lý MariaDB


NGUYENCANHSON.COM
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 Ubuntu 22.04
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 72
  • Thiết lập nâng cao cho Mariadb

Bây các bạn sẽ cài đặt mật khẩu root cho Mariadb và thiết lập một số tùy chỉnh khác với lệnh



NGUYENCANHSON.COM
sudo mysql_secure_installation
    
root@LEMPSTACK:~# sudo 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
haven't set the root password yet, 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 or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n     
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y             (Nhấn Y để tạo pass root mới)
New password:  Nhập passwd root
Re-enter new password: Nhập lại passwd root
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!
  • Kiểm tra phiên bản (version) của Mariadb.


NGUYENCANHSON.COM
mariadb --version
    
1693345542 903 Huong dan cai dat LEMP Stack tren Ubuntu 2204
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 73

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

Tại thời điểm minh viết bài này thì phiên bản PHP mới nhất là 8.1, do đó mình sẽ cài đặt PHP 8.1 với các lệnh sau

  • Cài đặt PHP


NGUYENCANHSON.COM
sudo apt-get install -y php8.1 php8.1-fpm php8.1-mysql php-common php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl php8.1-soap php8.1-mbstring
    
  • Một số lệnh quản lý PHP


NGUYENCANHSON.COM
systemctl enable php8.1-fpm    (Bật khởi động cùng hệ thống)
systemctl start php8.1-fpm     (Khởi động lại  dịch vụ PHP)
systemctl status php8.1-fpm    (Xem trạng thái dịch vụ PHP)
    
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 74
  • Kiểm tra phiên bản (version) của PHP


NGUYENCANHSON.COM
php -v
    
1693345542 569 Huong dan cai dat LEMP Stack tren Ubuntu 2204
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 75

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

phpMyAdmin là ứng dụng dùng để quản lý cơ sở dữ liệu dưới dạng giao diện, thông qua phpMyAdmin sẽ giúp bạn quản lý các Database trực quan hơn. Để cài đặt bạn hãy thực hiện như sau:

  • Cài đặt phpMyAdmin


NGUYENCANHSON.COM
sudo apt-get install -y phpmyadmin
    

Tiếp đến bạn chọn apache2 và nhấn Enter

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

Tại giao diện tiếp theo, bạn chọn Yes để cấu hình cơ sở dữ liệu cho phpMyAdmin với dbconfig-common.

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

Bây giờ bạn tạo mật khẩu mới cho user phpmyadmin và nhấn nút Tab để chuyển sang OK và nhấn Enter.

1693345542 237 Huong dan cai dat LEMP Stack tren Ubuntu 2204
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 78

Tiếp tục nhập lại mật khẩu và nhấn nút Tab để chuyển sang OK và nhấn Enter.

Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04
  • Thêm các đặc quyền cho user phpmyadmin


NGUYENCANHSON.COM
sudo mysql -u root
show grants for phpmyadmin@localhost;
exit;
    
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 79
  • Cấu hình để truy câp phpMyAdmin

Bạn tạo một file cấu hình theo lệnh



NGUYENCANHSON.COM
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
    

Sau đó bạn thêm nội dung cấu hình bên dưới vào, và thay đổi example.com bằng tên miền của bạn.

server {
  listen 80;
  listen [::]:80;
  server_name example.com;
  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:/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;
  }
}

Lưu ý: Để truy cập được từ tên miền thì bạn cần phải trỏ tên miền về IP máy chủ.

  • Kiểm tra cấu hình và khởi động lại Nginx


NGUYENCANHSON.COM
nginx -t
systemctl restart nginx
    
1693345542 581 Huong dan cai dat LEMP Stack tren Ubuntu 2204
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 80

Bây giờ hãy truy cập tên miền đã cấu hình ra trình duyệt, và dưới đây là kết quả của mình.

1693345542 340 Huong dan cai dat LEMP Stack tren Ubuntu 2204
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 81

Để đăng nhập, bạn sử dụng user phpmyadmin và password đã thiết lập ở phần đầu. Và dưới đây là giao diện khi đăng nhập thành công.

1693345542 293 Huong dan cai dat LEMP Stack tren Ubuntu 2204
Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04 82

Như vậy mình đã hướng dẫn các bạn cài đặt LEMP Stack trên Ubuntu 22.04 hoàn tất. Hy vọng bài viết sẽ giúp ích cho các bạn.
Chúc các bạn thực hiện thành công.!