Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Ubuntu 20.04 [Quickstart]
Trong hướng dẫn bắt đầu nhanh này, ta sẽ cài đặt LEMP trên server Ubuntu 20.04.Để có version chi tiết hơn của hướng dẫn này, với giải thích thêm về từng bước, vui lòng tham khảo Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP ) trên Ubuntu 20.0
Yêu cầu
Để làm theo hướng dẫn này, bạn cần quyền truy cập vào server Ubuntu 20.04 với quyền là user sudo
.
Bước 1 - Cài đặt Nginx
Cập nhật cache ẩn trình quản lý gói của bạn và sau đó cài đặt Nginx với:
- sudo apt update
- sudo apt install nginx
Sau khi cài đặt xong, bạn cần điều chỉnh cài đặt firewall để cho phép truy cập HTTP trên server của bạn . Chạy lệnh sau để cho phép truy cập bên ngoài trên cổng 80
(HTTP):
- sudo ufw allow in "Nginx"
Với luật firewall mới được thêm vào, bạn có thể kiểm tra xem server có hoạt động hay không bằng cách truy cập địa chỉ IP công cộng hoặc domain của server từ trình duyệt web . Bạn sẽ thấy một trang như thế này:
Bước 2 - Cài đặt MySQL
Bây giờ ta sẽ cài đặt MySQL, một hệ thống quản lý database phổ biến được sử dụng trong môi trường PHP.
, hãy sử dụng apt
để cài đặt phần mềm này:
- sudo apt install mysql-server
Khi quá trình cài đặt hoàn tất, bạn nên chạy một tập lệnh bảo mật được cài đặt sẵn với MySQL. Bắt đầu tập lệnh tương tác bằng lệnh:
- sudo mysql_secure_installation
Điều này sẽ hỏi xem bạn có muốn cấu hình VALIDATE PASSWORD PLUGIN
. Trả lời Y
có hoặc bất kỳ điều gì khác để tiếp tục mà không cần bật. Nếu bạn trả lời “yes” , bạn cần chọn mức độ xác thực password .
Tiếp theo, server của bạn sẽ yêu cầu bạn chọn và xác nhận password cho user gốc MySQL. Mặc dù phương pháp xác thực mặc định cho user root MySQL không cho phép sử dụng password , ngay cả khi một password được đặt , bạn nên xác định một password mạnh ở đây như một biện pháp an toàn bổ sung.
Đối với các câu hỏi còn lại, nhấn Y
và nhấn ENTER
tại mỗi dấu nhắc .
Lưu ý: Tại thời điểm viết bài này, thư viện MySQL PHP mysqlnd
không hỗ trợ caching_sha2_authentication
, phương thức xác thực mặc định cho MySQL 8. Vì lý do đó, khi tạo user database cho các ứng dụng PHP trên MySQL 8, bạn cần thực hiện hãy chắc chắn rằng chúng được cấu hình để sử dụng mysql_native_password
thay thế. Vui lòng tham khảo bước 6 của hướng dẫn chi tiết về LEMP trên Ubuntu 20.04 của ta để tìm hiểu cách thực hiện điều đó.
Bước 3 - Cài đặt PHP
Để cài đặt các gói php-fpm
và php-mysql
, hãy chạy:
- sudo apt install php-fpm php-mysql
Bước 4 - Cấu hình Nginx cho PHP
Trong hướng dẫn này, ta sẽ cài đặt domain có tên your_domain , nhưng bạn nên thay thế domain này bằng domain của riêng mình .
Trên Ubuntu 20.04, Nginx có một khối server được bật theo mặc định và được cấu hình để cung cấp tài liệu ra khỏi folder tại /var/www/html
. Mặc dù điều này hoạt động tốt cho một trang web nhưng có thể trở nên khó quản lý nếu bạn đang lưu trữ nhiều trang web. Thay vì sửa đổi /var/www/html
, ta sẽ tạo cấu trúc folder trong /var/www
cho trang web your_domain , giữ nguyên /var/www/html
làm folder mặc định sẽ được phục vụ nếu khách hàng không yêu cầu phù hợp với bất kỳ trang web nào khác.
Tạo folder web root cho your_domain như sau:
- sudo mkdir /var/www/your_domain
Tiếp theo, chỉ định quyền sở hữu folder với biến môi trường $ USER, biến này sẽ tham chiếu đến user hệ thống hiện tại của bạn:
- sudo chown -R $USER:$USER /var/www/your_domain
Sau đó, mở file cấu hình mới trong folder sites-available
của Nginx bằng editor dòng lệnh bạn muốn . Ở đây, ta sẽ sử dụng nano
:
- sudo nano /etc/nginx/sites-available/your_domain
Thao tác này sẽ tạo một file trống mới. Dán vào cấu hình cơ bản sau:
server { listen 80; server_name your_domain www.your_domain; root /var/www/your_domain; index index.html index.htm index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } }
Khi bạn chỉnh sửa xong, hãy lưu file . Nếu bạn đang sử dụng nano
, bạn có thể thực hiện bằng cách gõ CTRL+X
, sau đó nhập y
và ENTER
để xác nhận.
Kích hoạt cấu hình của bạn bằng cách liên kết đến file cấu hình từ folder sites-enabled
của Nginx:
- sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Điều này sẽ thông báo cho Nginx sử dụng cấu hình trong lần reload tiếp theo. Bạn có thể kiểm tra cấu hình của bạn để tìm lỗi cú pháp bằng lệnh :
- sudo nginx -t
Nếu bất kỳ lỗi nào được báo cáo, hãy quay lại file cấu hình của bạn để xem lại nội dung của nó trước khi tiếp tục.
Khi đã sẵn sàng , hãy reload Nginx để áp dụng các thay đổi:
- sudo systemctl reload nginx
Trang web mới của bạn hiện đã hoạt động, nhưng root web /var/www/ your_domain
vẫn trống. Tạo index.html
ở vị trí đó để ta có thể kiểm tra xem khối server mới của bạn có hoạt động như mong đợi hay không:
- nano /var/www/your_domain/index.html
Đưa nội dung sau vào file này:
<html> <head> <title>your_domain website</title> </head> <body> <h1>Hello World!</h1> <p>This is the landing page of <strong>your_domain</strong>.</p> </body> </html>
Bây giờ, hãy truy cập trình duyệt của bạn và truy cập domain hoặc địa chỉ IP của server , như được liệt kê trong lệnh server_name
trong file cấu hình khối server của bạn:
http://server_domain_or_IP
Bạn sẽ thấy một trang như thế này:
Bước 5 - Kiểm tra PHP với Nginx
Bây giờ ta sẽ tạo một tập lệnh thử nghiệm PHP để xác nhận Nginx có thể xử lý và xử lý các yêu cầu đối với file PHP.
Tạo một file mới có tên info.php
bên trong folder root web tùy chỉnh của bạn:
- nano /var/www/your_domain/info.php
Thao tác này sẽ mở một file trống. Thêm nội dung sau vào bên trong file :
<?php phpinfo();
Khi bạn hoàn tất, hãy lưu file .
Như vậy, bạn có thể truy cập trang này trong trình duyệt web của bạn bằng cách truy cập vào domain hoặc địa chỉ IP công cộng mà bạn đã cài đặt trong file cấu hình Nginx của bạn , theo sau là /info.php
:
http://server_domain_or_IP/info.php
Bạn sẽ thấy một trang web chứa thông tin chi tiết về server của bạn:
Sau khi kiểm tra thông tin liên quan về server PHP của bạn thông qua trang đó, tốt nhất là xóa file bạn đã tạo vì nó chứa thông tin nhạy cảm về môi trường PHP và server Ubuntu của bạn. Bạn có thể sử dụng rm
để xóa file đó:
- sudo rm /var/www/your_domain/info.php
Hướng dẫn liên quan
Dưới đây là các liên kết đến các hướng dẫn chi tiết hơn liên quan đến hướng dẫn này:
- Cài đặt server ban đầu trên Ubuntu 20.04
- Quản lý bản ghi DNS trên DigitalOcean
- Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP stack) trên Ubuntu 20.04
Các tin liên quan
Cách thiết lập Nền tảng Cloud IDE server mã trên Ubuntu 18.042020-05-13
Cách tạo server Minecraft trên Ubuntu 18.04
2020-05-07
Cách tạo server Minecraft trên Ubuntu 20.04
2020-05-07
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 20.04 [Quickstart]
2020-05-07
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 20.04
2020-04-29
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Ubuntu 20.04
2020-04-29
Thiết lập bảo mật server quan trọng với Ubuntu 20.04
2020-04-23
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 7
2020-04-21
Cách theo dõi tình trạng server với Checkmk trên Ubuntu 18.04
2020-04-16
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 8 [Quickstart]
2020-04-16