Cách cài đặt Nginx với PHP và MySQL (LEMP Stack) trên Ubuntu 20.04 LTS

theanh

Administrator
Nhân viên
Nginx (phát âm là "engine x") là một máy chủ HTTP miễn phí, mã nguồn mở, hiệu suất cao. Nginx được biết đến với tốc độ cao, tính ổn định, bộ tính năng phong phú, cấu hình đơn giản và mức tiêu thụ tài nguyên thấp. Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Nginx trên máy chủ Ubuntu 20.04 LTS có hỗ trợ PHP 7.4 (thông qua PHP-FPM) và hỗ trợ MySQL (LEMP = Linux + Nginx (phát âm là "engine x") + MySQL + PHP).

Điều kiện tiên quyết
  • Máy chủ Ubuntu 20.04 LTS
  • Quyền root
Chúng ta sẽ làm gì?
  • Cài đặt Nginx
  • Cài đặt MySQL
  • Cài đặt PHP-FPM
  • Cấu hình Nginx và PHP-FPM
  • Cài đặt PhpMyAdmin
  • Cấu hình PhpMyAdmin
  • Kiểm tra

Bước 1 - Cài đặt Nginx​

Nginx hay engine x là máy chủ proxy và HTTP hiệu suất cao với mức tiêu thụ bộ nhớ thấp. Hầu hết các trang web quy mô lớn như Netflix, Pinterest, CloudFlare, GitHub đều sử dụng Nginx.

Trong bước này, chúng ta sẽ cài đặt máy chủ web Nginx từ kho lưu trữ Ubuntu.

Cập nhật tất cả các kho lưu trữ trên hệ thống Ubuntu và cài đặt các gói Nginx bằng lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install nginx
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Nginx và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống.
Mã:
systemctl start nginx
systemctl enable nginx
Bây giờ quá trình cài đặt Nginx Webserver đã hoàn tất, hãy kiểm tra dịch vụ Nginx bằng lệnh sau.
Mã:
systemctl status nginx
Dưới đây là kết quả bạn sẽ nhận được.



Ngoài ra, hãy kiểm tra cổng HTTP trên hệ thống Ubuntu và đảm bảo rằng nó được dịch vụ Nginx sử dụng.
Mã:
ss -plt4
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là, giao thức HTTP được dịch vụ Nginx sử dụng.

Tiếp theo, chúng ta sẽ bảo mật cài đặt Nginx của mình bằng tường lửa UFW.

Thêm giao thức HTTP và HTTPS vào cấu hình tường lửa UFW bằng lệnh sau.
Mã:
for fw in ssh http https
do
ufw allow $fw
done
Bây giờ hãy bật tường lửa UFW và kiểm tra xem trạng thái.
Mã:
ufw enable
ufw status numbered
Và giao thức HTTP và HTTPS đã được thêm vào cấu hình tường lửa UFW.


Bước 2 - Cài đặt MySQL​

MySQL là Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở phổ biến nhất do Oracle Corporation tạo ra. Đây là thành phần trung tâm của LEMP Stack và chúng ta sẽ cài đặt phiên bản MySQL mới nhất từ kho lưu trữ Ubuntu.

Cài đặt MySQL bằng lệnh apt bên dưới.
Mã:
sudo apt install mysql-server mysql-client
Sau khi cài đặt MySQL hoàn tất, hãy khởi động dịch vụ MySQL và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống.
Mã:
systemctl start mysql
systemctl enable mysql
Bây giờ hãy kiểm tra dịch vụ MySQL bằng lệnh bên dưới.
Mã:
systemctl status mysql
Dịch vụ MySQL đã hoạt động.



Tiếp theo, chúng ta sẽ thiết lập mật khẩu gốc cho máy chủ MySQL.

Chạy lệnh 'mysql_secure_installation' bên dưới.
Mã:
mysql_secure_installation
Bây giờ bạn sẽ được hỏi cấu hình sau và đảm bảo nhập mật khẩu mạnh cho tài khoản gốc MySQL người dùng.
Mã:
Nhấn y|Y để Có, bất kỳ phím nào khác để Không: Nhấn Enter

Mật khẩu mới: 
Nhập lại mật khẩu mới: 

Xóa người dùng ẩn danh? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Không cho phép đăng nhập root từ xa? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Tải lại bảng đặc quyền ngay bây giờ? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Và mật khẩu gốc của MySQL đã được cấu hình.

Kết quả là quá trình cài đặt và cấu hình Cơ sở dữ liệu MySQL trên Ubuntu 20.04 đã hoàn tất.

Bước 3 - Cài đặt và cấu hình PHP-FPM​

PHP-FPM hay FastCGI Process Manager là một giải pháp thay thế cho PHP FastCGI cũ hơn, cung cấp các tính năng bổ sung và cải thiện tốc độ. Nó phù hợp với các trang web từ nhỏ đến lớn dựa trên ngôn ngữ lập trình PHP.

Trong bước này, chúng ta sẽ cài đặt PHP7.4-FPM mặc định với một số tiện ích mở rộng bổ sung mà PHPMyAdmin yêu cầu.

Cài đặt PHP-FPM bằng lệnh bên dưới.
Mã:
sudo apt install php-fpm php-cli php-curl php-mysql php-curl php-gd php-mbstring php-pear -y
Sau khi cài đặt PHP-FPM hoàn tất, hãy vào thư mục '/etc/php/7.4/fpm' và chỉnh sửa cấu hình php.ini bằng trình soạn thảo vim.
Mã:
cd /etc/php/7.4/fpm/
vim php.ini
Bỏ chú thích cho cấu hình sau và đổi giá trị thành '0'.
Mã:
cgi.fix_pathinfo = 0
Lưu và đóng.

Bây giờ hãy khởi động dịch vụ PHP7.4-FPM và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống
Mã:
systemctl start php7.4-fpm
systemctl enable php7.4-fpm
Dịch vụ PHP-FPM đã hoạt động, hãy kiểm tra dịch vụ này bằng lệnh sau.
Mã:
systemctl status php7.4-fpm
Dưới đây là kết quả bạn sẽ thấy lấy.



Theo mặc định, PHP-FPM đang chạy dưới tệp sock, hãy kiểm tra bằng lệnh ss bên dưới.
Mã:
ss -pl | grep php
Dưới đây là phản hồi bạn sẽ nhận được.
Mã:
u_str LISTEN 0 511 /run/php/php7.4-fpm.sock 67702 * 0
Và quá trình cài đặt PHP-FPM 7.4 trên Ubuntu 20.04 đã hoàn tất.

Bước 4 - Cấu hình Nginx và PHP-FPM​

Trong bước này, chúng ta sẽ cấu hình máy chủ web Nginx và PHP-FPM.

Vào thư mục cấu hình '/etc/nginx' và chỉnh sửa tệp 'nginx.conf' bằng vim hoặc nano.
Mã:
cd /etc/nginx/
vim nginx.conf
Bỏ chú thích dòng sau để ẩn Nginx version.
Mã:
server_tokens off;
Lưu và đóng.

Tiếp theo, chỉnh sửa cấu hình virtualhost 'mặc định' trên thư mục 'sites-available'.
Mã:
vim sites-available/default
Bỏ chú thích dòng PHP hiển thị bên dưới và thay đổi dòng tệp sock.
Mã:
location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 #
 # # Với php-fpm (hoặc các socket unix khác):
 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
 # # Với php-cgi (hoặc các socket tcp khác):
 # fastcgi_pass 127.2.0.1:9000;
 }
Lưu và đóng.

Kiểm tra cấu hình Nginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ.
Mã:
nginx -t
systemctl restart nginx
Kết quả là cấu hình Nginx và PHP-FPM đã hoàn tất.


Bước 5 - Cài đặt phpMyAdmin​

PhpMyAdmin là ứng dụng dựa trên PHP để quản lý cơ sở dữ liệu MySQL hoặc MariaDB từ trình duyệt web. Trong bước này, chúng ta sẽ cài đặt và cấu hình PHPMyAdmin theo ngăn xếp LEMP (Linux, Nginx, MySQL và PHP-FPM).

Cài đặt PHPMyAdmin bằng lệnh apt bên dưới.
Mã:
sudo apt install phpmyadmin
Trong quá trình cài đặt, nó sẽ hỏi bạn về cấu hình máy chủ web cho phpmyadmin.

Chọn tùy chọn none và di chuyển con trỏ đến 'OK'.



Đối với cơ sở dữ liệu phpmyadmin và cấu hình người dùng, chọn 'Yes'.



Và nhập quản trị viên PHPMyAdmin 'STRONG' mới như 'Hakaselabs001@#'.



Lặp lại mật khẩu 'Hakaselabs001@#'.



Và quá trình cài đặt phpMyAdmin trên Ubuntu 20.04 đã hoàn tất.

Bước 6 - Cấu hình phpMyAdmin với Nginx và MySQL​

Sau khi cài đặt phpmyadmin, chúng ta cần cấu hình phpmyadmin để chạy trên máy chủ web Nginx và cấu hình quyền truy cập phpmyadmin của người dùng MySQL. Để chạy PHPMyAdmin dưới máy chủ web Nginx, chúng ta cần thêm cấu hình vào tệp cấu hình máy chủ ảo.

Cấu hình phpMyAdmin với Nginx Webserver​

Bây giờ hãy vào thư mục cấu hình '/etc/nginx' và chỉnh sửa tệp máy chủ ảo mặc định.
Mã:
cd /etc/nginx/sites-available/
vim default
Dán cấu hình Nginx sau cho PHPMyAdmin vào trong dấu ngoặc 'server {...}'.
Mã:
location /phpmyadmin {
 root /usr/share/;
 index index.php;
 try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
 deny all;
 }

location ~ /phpmyadmin/(.+\.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;
 }
}
Lưu và thoát.

Kiểm tra cấu hình nginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ nginx.
Mã:
nginx -t
systemctl reload nginx
Và chúng tôi đã thêm cấu hình Nginx cho cài đặt phpMyAdmin của mình, có thể truy cập thông qua URL đường dẫn là 'http://server-ip/phpmyadmin'.


Cho phép người dùng phpMyAdmin truy cập Cơ sở dữ liệu​

Đối với hướng dẫn này, chúng ta sẽ sử dụng người dùng MySQL không phải root cho PHPMyAdmin. Chúng ta sẽ tạo một người dùng mới và cấp tất cả các quyền của tất cả các cơ sở dữ liệu bên trong máy chủ cho người dùng.

Đăng nhập vào shell MySQL bằng lệnh sau.
Mã:
mysql -u root -p
Bây giờ hãy tạo một người dùng MySQL mới 'hakase' và cấp tất cả các quyền cơ sở dữ liệu.
Mã:
tạo người dùng hakase@'localhost' được xác định bởi 'Hakaselabs001@#';
cấp tất cả các quyền trên *.* cho hakase@'localhost';
xóa các quyền;
Bây giờ hãy nhập 'exit' để đăng xuất khỏi shell MySQL.
Mã:
exit
Kết quả là chúng ta đã tạo một người dùng MySQL mới cho phpMyAdmin.

Bước 7 - Kiểm tra​

Trong bước này, chúng ta sẽ kiểm tra cấu hình LEMP Stack và phpMyAdmin của mình.

Kiểm tra tệp PHP​

Đi tới thư mục '/var/www/html' và tạo một tệp tập lệnh mới 'info.php' bằng trình soạn thảo vim.
Mã:
cd /var/www/html
vim info.php
Dán đoạn mã sau vào đó.
Mã:
Lưu và đóng.

Tiếp theo, mở trình duyệt web và nhập địa chỉ IP máy chủ của bạn theo đường dẫn của đoạn mã 'info.php'.


Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là, chúng tôi đã cấu hình chi tiết PHP-FPM 7.4 của mình trên máy chủ Ubuntu 20.04 và đoạn mã PHP đang chạy trên máy chủ LEMP Stack của chúng tôi.

Kiểm tra phpMyAdmin​

Để kiểm tra cài đặt phpMyAdmin của chúng tôi, hãy nhập địa chỉ IP máy chủ của bạn theo đường dẫn 'phpmyadmin' trên URL.


Và bạn sẽ nhận được trang đăng nhập phpMyAdmin.



Để đăng nhập vào phpMyAdmin, hãy nhập người dùng mà chúng ta đã tạo ở trên cùng. Người dùng là 'hakase' với mật khẩu 'Hakaselabs001@#', sau đó nhấp vào nút 'Go'.

Và bạn sẽ nhận được bảng điều khiển phpMyAdmin như bên dưới.



PhpMyAdmin đang hoạt động trong môi trường LEMP Stack.

Kết quả là quá trình cài đặt và cấu hình LEMP Stack trên Ubuntu 20.04 đã hoàn tất thành công.
 
Back
Bên trên