Nội dung bài viết
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:
Ở 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
sudo apt update -y && apt upgrade -y
- Cài đặt Nginx
sudo apt-get install nginx -y
- Một số lệnh quản lý Nginx
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)
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.
- Mở Port 80 (HTTP) với tường lửa
Với iptables
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Với Firewall UFW
ufw allow http
Bước 2: Cài đặt MariaDB Database Server
- Cài đặt MariaDB Database Server
sudo apt install -y mariadb-server mariadb-client
- Một số lệnh quản lý MariaDB
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)
- 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
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.
mariadb --version
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
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
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)
- Kiểm tra phiên bản (version) của PHP
php -v
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
sudo apt-get install -y phpmyadmin
Tiếp đến bạn chọn apache2 và nhấn Enter
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
.
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.
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.
- Thêm các đặc quyền cho user phpmyadmin
sudo mysql -u root show grants for phpmyadmin@localhost; exit;
- Cấu hình để truy câp phpMyAdmin
Bạn tạo một file cấu hình theo lệnh
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
nginx -t systemctl restart nginx
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.
Để đă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.
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.!