Trong bài viết này mình sẽ hướng dẫn các bạn cách cài đặt bộ Webserver nổi tiếng LEMP bao gồm: Linux + Nginx + MariaDB + PHP (PHP-FPM) trên Ubuntu 24.04.

Hướng dẫn cài đặt LEMP (Nginx, PHP, MariaDB) trên Ubuntu 24.04

  • Nginx (đọc là Engine x) là một Webserver nhỏ gọn, ít tốn RAM, mạnh mẽ và có hiệu suất hoạt động cao.
  • PHP nên chọn phiên bản mới nhất, hiện tại là 8.3.
  • MariaDB là phiên bản mã nguồn mở của MySQL, hoạt động giống hệt MySQL.

Cài đặt Nginx trên Ubuntu 24.04

Các thao tác thực hiện bằng dòng lệnh, dùng phần mềm Bitvise SSH Client để quản trị. Nếu bạn chưa từng cài đặt, tham khảo bài viết này nhé.

Cập nhật hệ thống

apt -y update && apt -y upgrade

Cài đặt Nginx

apt -y 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 status nginx

Lưu ý: 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.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Để port tự động mở khi reboot máy chủ, bạn thêm dòng lệnh này nhé.

apt -y install iptables-persistent

Cài đặt MariaDB

Bạn hãy cài đặt với lệnh sau.

apt -y install mariadb-server

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

systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb

Đối với MariaDB 10.6 trở lên, các bạn dùng lệnh.

mysql_secure_installation

Ngay bước đầu tiên bạn sẽ bị hỏi root password, do mới cài đặt nên tất nhiên chưa có password, nhấn Enter để đặt mật khẩu và nhập y ở các câu hỏi tiếp theo.

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
have not set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
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] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


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

Change the root password? [Y/n] y
New password:
Re-enter new 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!

Đăng nhập vào MySQL

Đăng nhập MySQL bạn dùng lệnh: mysql -u root -p. Để tạo một cơ sở dữ liệu, dùng lệnh: CREATE DATABASE tên_csdl;.

Nếu bạn muốn phục hồi cơ sở dữ liệu, tham khảo bài viết này nhé.

Cài đặt PHP

Trong tập lệnh này mình sẽ chọn cài PHP 8.3 và các phần mở rộng đi kèm.

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

Cấu hình Nginx

Chỉnh sửa tập tin /etc/nginx/sites-available/default.

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;

	# Add index.php to the list if you are using PHP
	index index.php index.html index.htm index.nginx-debian.html;

	server_name example.com;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ /index.php?$args;
	}

	# pass PHP scripts to FastCGI server
	#
	location ~ \.php$ {
		try_files $uri =404;
		fastcgi_pass unix:/run/php/php8.3-fpm.sock;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;

	}

	include /var/www/html/nginx.conf;
}

Theo cấu hình này, website sẽ được chứa ở thư mục /var/www/html. Thư mục này cần cấp quyền đọc / ghi / xóa / sửa dữ liệu.

cd /var/www/html
chown -R www-data:www-data *

Chúc các bạn thành công!

5/5 (7 bình chọn)