Giới thiệu
Bài viết hướng dẫn bạn thực hiện cài đặt LEMP stack (Nginx, MariaDB và PHP7.4) lên Ubuntu 20.04 đây là bản Ubuntu mới nhất tại thời điểm mình viết bài này. LEMP là viết tắt của Linux, Nginx (Engine-X), MariaDB/MySQL và PHP, tất cả đều là nguồn mở và miễn phí sử dụng. Đây là phần mềm phổ biến nhất cung cấp năng lượng cho các trang web và ứng dụng web động. Trong đó
- Linux là hệ điều hành
- Nginx là máy chủ web
- MariaDB/MySQL là máy chủ cơ sở dữ liệu
- PHP là ngôn ngữ kịch bản phía máy chủ chịu trách nhiệm tạo các trang web động.
Cài đặt
Để cài đặt LEMP Stack bạn cần truy cập vào máy chủ thông qua SSH với quyền root hoặc sudo sau đó thực hiện các bước như sau
Bước 1: Update Software Packages
Trước khi cài đặt LEMP, bạn nên cập nhật các gói phần mềm và kho lưu trữ bằng cách chạy các lệnh sau trên Ubuntu 20.04
$ apt update -y $ apt upgrade -y
Bước 2: Cài đặt Nginx Web Server
Nginx là một máy chủ web hiệu suất cao và rất phổ biến ngày nay. Nó cũng có thể được sử dụng như một proxy ngược và máy chủ bộ đệm. Bạn nhập lệnh sau để cài đặt máy chủ web Nginx.
$ apt install nginx
Sau khi cài đặt hoàn tất nginx bạn kích hoạt và khởi động nginx với lệnh sau
$ systemctl enable nginx $ systemctl start nginx $ systemctl status nginx
Kiểm tra phiên bản nginx bằng lệnh sau
$ nginx -v
Bây giờ bạn hãy mở trình duyệt web lên và nhập vào IP public của bạn, sẽ hiện ra “Welcome to Nginx” thì đã thành công rồi nhé.
Lưu ý: Nếu kết nối bị từ chối hoặc không hoàn thành, có thể có tường lửa ngăn các yêu cầu đến cổng TCP 80. Nếu bạn đang sử dụng tường lửa iptables, thì bạn cần chạy lệnh sau để mở cổng TCP 80.
$ iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- Nếu bạn đang sử dụng tường lửa UFW, thì hãy chạy lệnh này để mở cổng TCP 80
$ ufw allow http
Cuối cùng, bạn hãy tạo dữ liệu www (người dùng Nginx) làm chủ sở hữu thư mục web. Theo mặc định, nó thuộc sở hữu của người dùng root
$ chown www-data:www-data /usr/share/nginx/html -R
Bước 3: Cài đặt MariaDB Database Server
MariaDB là một thay thế của MySQL. Nó được phát triển bởi các thành viên cũ của nhóm MySQL sau khi bán lại cho Oracle, về thông tin này cùng mình tìm hiểu sau nha, còn giờ bạn hãy nhập lệnh sau để cài đặt MariaDB trên Ubuntu 20.04.
$ apt install mariadb-server mariadb-client
Sau khi cài đặt thành công, MariaDB sẽ tự động chạy bạn nhập lệnh sau để kiểm tra trạng thái
$ systemctl status mariadb
- Kích hoạt MariaDB khởi động cùng hệ thống
$ systemctl enable mariadb
- Stop MariaDB
$ systemctl stop mariadb
- Start MariaDB
$ systemctl start mariadb
Tiếp đến bạn cần thiết lập bảo mật cho MariaDB
$ mysql_secure_installation
root@lab:~# 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 you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): <= Enter OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: <== Nhập vào pass root cần đặt Re-enter new password: <= Nhập lại pass 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!
Theo mặc định, gói MaraiDB trên Ubuntu sử dụng unix_socket
để xác thực đăng nhập của người dùng, điều đó có nghĩa là bạn có thể sử dụng tên người dùng và mật khẩu của HĐH để đăng nhập vào bảng điều khiển MariaDB. Vì vậy, bạn có thể chạy lệnh sau để đăng nhập mà không cần cung cấp mật khẩu gốc MariaDB.
$ mariadb -u root
Chạy lệnh sau để exit
$ exit;
Kiểm tra phiên bản MariaDB
$ mariadb --version
Bước 4: Cài đặt PHP
Ở đây mình sẽ cài đặt PHP 7.4 là phiên bản mới nhất hiện tại, và PHP7.4 được bao gồm trong kho lưu trữ Ubuntu 20.04 và có một cải tiến hiệu suất nhỏ so với PHP7.3. Nhập lệnh sau để cài đặt PHP7.4 và một số phần mở rộng phổ biến.
$ apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl $ systemctl start php7.4-fpm $ systemctl enable php7.4-fpm $ systemctl status php7.4-fpm
Bước 5: Tạo Block Nginx Server
Block máy chủ Nginx giống như một máy chủ ảo trong Apache. Mình sẽ không sử dụng block máy chủ mặc định vì nó không đủ để chạy mã PHP. Vì vậy, loại bỏ symlink default
trong thư mục sites-enabled
bằng cách chạy lệnh sau. ( Nó vẫn có sẵn dưới dạng /etc/nginx/sites-available/default
.)
$ rm /etc/nginx/sites-enabled/default
Sau đó tạo mới một file trong /etc/nginx/conf.d/
. MÌnh sẽ sử dụng trình soạn thảo vi để thực hiện
$ vi /etc/nginx/conf.d/default.conf
Dán văn bản sau vào tập tin. Đoạn mã sau sẽ khiến Nginx lắng nghe trên cổng IPv4 80 và IPv6 cổng 80 với tên máy chủ
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
Sau đó bạn lưu lại và test file cấu hình nginx bằng lệnh sau, nếu hiện successful là đã OK rồi.
$ nginx - t
$ systemctl reload nginx
Bước 6: Kiểm tra PHP
Để kiểm tra PHP-FPM với máy chủ Nginx, mình sẽ tạo một tệp info.php trong thư mục webroot.
$ echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
Sau đó bạn truy cập vào domain/info.php hoặc ip/info.php
Như vậy là đã hoàn tất rồi, Nếu bạn gặp lỗi, bạn có thể kiểm tra nhật ký lỗi Nginx (/var/log/nginx/error.log
) để tìm log nhé.
Chúc mừng bạn chưa cài đặt thành công LEMP trên máy chủ Ubuntu 20.04. Thật dễ dàng quá đúng không, hãy theo dõi để nhận những bài viết bổ ích khác nhé. Nếu bạn có gì thắc mắc xin để lại comment bên dưới mình sẽ cố gắng trả lời bạn.
Cám ơn bạn đã có những bài viết rất hữu ích. Không biết bạn có thể làm thêm 1 bài về cách cài WordPress trên LEMP không?
Cài WP trên LEMP cũng không có bạn. Bạn thực hiện các bước cơ bản như sau
– Bước 1: tạo vhost cho domain (search vhost lemp)
– Bước 2: Tải WordPress về đưa vào thư mục document root đã khai báo ở vhost
– Bước 3: Tạo database bằng lệnh
– Bước 4: truy cập domain và cài thông thường.
Các bước thì chỉ có như vậy nhưng để hôm nào mình viết 1 bài bạn xem
cám ơn bạn nhiều nha. Hóng bài viết của bạn
Mà bạn làm bên AZDIGI hả?