Hướng dẫn này sẽ chỉ cho bạn cách cài đặt LEMP Stack trên Ubuntu 22. 04 máy chủ. Bạn cũng sẽ học cách cài đặt các ứng dụng như phpMyAdmin
điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 22. 04
- Người dùng không phải root có đặc quyền sudo
- Tường lửa không biến chứng [UFW] được bật và đang chạy
Mọi thứ đều được cập nhật
$ sudo apt update && sudo apt upgrade
Bước 1 - Định cấu hình Tường lửa
Bước đầu tiên trước khi cài đặt bất kỳ gói nào là định cấu hình tường lửa để cho phép kết nối HTTP và HTTPS
Kiểm tra trạng thái của tường lửa
$ sudo ufw status
Bạn sẽ thấy một cái gì đó như sau
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]
Cho phép cổng HTTP và HTTPs
$ sudo ufw allow http $ sudo ufw allow https
Kiểm tra lại trạng thái để xác nhận
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]
Bước 2 - Cài đặt PHP
Ubuntu 22. 04 tàu PHP 8. 1 theo mặc định. Bạn có thể cài đặt nó bằng cách chạy lệnh sau
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd
Chúng tôi đã cài đặt các phần mở rộng MySQL, CLI, GD, Mbstring và XML của PHP. Bạn có thể cài đặt bất kỳ tiện ích mở rộng bổ sung nào theo yêu cầu của mình
Để luôn cập nhật phiên bản PHP mới nhất hoặc nếu bạn muốn cài đặt nhiều phiên bản PHP, hãy thêm kho lưu trữ PHP của Ondrej
Thêm kho lưu trữ PHP của Ondrej
$ sudo add-apt-repository ppa:ondrej/php
Bây giờ, bạn có thể cài đặt bất kỳ phiên bản PHP nào
$ sudo apt install php8.0-fpm php8.0-cli
Kiểm tra phiên bản PHP đã cài đặt
________số 8_______Bước 3 - Cài đặt MySQL
Ubuntu 22. 04 xuất xưởng với phiên bản MySQL mới nhất. Bạn có thể cài đặt nó bằng một lệnh duy nhất
$ sudo apt install mysql-server
Kiểm tra phiên bản MySQL
$ sudo ufw status0
Bước này là cần thiết cho MySQL phiên bản 8. 0. 28 trở lên. Nhập vỏ MySQL
$ sudo ufw status1
Chạy lệnh sau để đặt mật khẩu cho người dùng root của bạn. Đảm bảo rằng nó có kết hợp các số, chữ hoa, chữ thường và ký tự đặc biệt
$ sudo ufw status2
Thoát khỏi vỏ
$ sudo ufw status3
Chạy tập lệnh cài đặt bảo mật MySQL
$ sudo ufw status4
Bạn sẽ được yêu cầu cài đặt Thành phần xác thực mật khẩu. Nó kiểm tra độ mạnh của mật khẩu được sử dụng trong MySQL. Nhấn Y để cài đặt nó. Quảng cáo
Tiếp theo, bạn sẽ được yêu cầu đặt cấp chính sách xác thực mật khẩu. Chọn 2 vì nó mạnh nhất
Tiếp theo, nhập mật khẩu gốc của bạn. Nhấn N để từ chối thay đổi
Nhấn Y để xóa người dùng ẩn danh, không cho phép đăng nhập root từ xa, xóa cơ sở dữ liệu kiểm tra và tải lại các bảng đặc quyền
Bước 4 - Định cấu hình MySQL
Đăng nhập vào vỏ MySQL. Nhập mật khẩu gốc của bạn khi được nhắc
$ sudo ufw status5
Tạo cơ sở dữ liệu mẫu
$ sudo ufw status6
Tạo tài khoản người dùng SQL
$ sudo ufw status7
Cấp tất cả các đặc quyền trên cơ sở dữ liệu cho người dùng
$ sudo ufw status8
Xóa đặc quyền người dùng
$ sudo ufw status9
Thoát khỏi vỏ
$ sudo ufw status3
Hãy để chúng tôi đăng nhập lại vào vỏ MySQL bằng người dùng mới được tạo
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]1
Tạo một bảng kiểm tra
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]2
Chèn dữ liệu thử nghiệm
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]3
Lặp lại lệnh trên nhiều lần riêng biệt để thêm nhiều mục hơn. Chạy lệnh sau để kiểm tra nội dung của bảng
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]4
Bạn sẽ nhận được đầu ra sau
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]5
Thoát khỏi vỏ MySQL
$ sudo ufw status3
Bước 5 - Cài đặt Nginx
Ubuntu 22. 04 tàu với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho Nginx chính thức
Nhập khóa ký của Nginx
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]7
Thêm kho lưu trữ cho phiên bản ổn định của Nginx
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]8
Cập nhật kho hệ thống
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6]9
Cài đặt Nginx
$ sudo ufw allow http $ sudo ufw allow https0
Xác minh cài đặt
$ sudo ufw allow http $ sudo ufw allow https1
Bước 6 - Định cấu hình PHP-FPM
Mở
$ sudo add-apt-repository ppa:ondrej/php9 để chỉnh sửa
$ sudo ufw allow http $ sudo ufw allow https2
Để đặt kích thước tệp tải lên, hãy thay đổi giá trị của các biến
$ sudo apt install php8.0-fpm php8.0-cli0 và
$ sudo apt install php8.0-fpm php8.0-cli1
$ sudo ufw allow http $ sudo ufw allow https3
Định cấu hình giới hạn bộ nhớ của PHP tùy thuộc vào yêu cầu và tài nguyên máy chủ của bạn
$ sudo ufw allow http $ sudo ufw allow https4
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Mở tệp
$ sudo apt install php8.0-fpm php8.0-cli2
$ sudo ufw allow http $ sudo ufw allow https5
Chúng ta cần đặt người dùng/nhóm quy trình PHP của Unix thành nginx. Tìm các dòng
$ sudo apt install php8.0-fpm php8.0-cli3 và
$ sudo apt install php8.0-fpm php8.0-cli4 trong tệp và thay đổi chúng thành
$ sudo apt install php8.0-fpm php8.0-cli5
$ sudo ufw allow http $ sudo ufw allow https6
Ngoài ra, hãy tìm các dòng
$ sudo apt install php8.0-fpm php8.0-cli6 và
$ sudo apt install php8.0-fpm php8.0-cli7 trong tệp và đổi chúng thành
$ sudo apt install php8.0-fpm php8.0-cli5
$ sudo ufw allow http $ sudo ufw allow https7
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Khởi động lại quy trình PHP-fpm
$ sudo ufw allow http $ sudo ufw allow https8
Bước 7 - Cài đặt phpMyAdmin
Tải xuống tệp lưu trữ của phpMyAdmin cho ngôn ngữ tiếng Anh
$ sudo ufw allow http $ sudo ufw allow https9
Tạo một thư mục công cộng cho trang web
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]0
Trích xuất kho lưu trữ vào thư mục chung
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]1
Chuyển sang thư mục chung
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]2
Đổi tên thư mục giải nén thành một cái gì đó khó hiểu để cải thiện bảo mật
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]3
Bước 8 - Cấu hình phpMyAdmin
Sao chép tập tin cấu hình mẫu
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]4
Mở tệp cấu hình để chỉnh sửa
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]5
Tìm dòng
$ sudo apt install php8.0-fpm php8.0-cli9 và nhập chuỗi ngẫu nhiên gồm 32 ký tự để xác thực dựa trên cookie
Bạn có thể sử dụng trình tạo blowfish trực tuyến của phpSolved hoặc thực hiện thông qua dòng lệnh
Sao chép giá trị và dán nó như được hiển thị
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]6
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Thay đổi quyền sở hữu trang web và phpMyAdmin thành máy chủ Nginx
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]7
Xóa thư mục cài đặt của phpMyAdmin
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH [v6] ALLOW Anywhere [v6] 80/tcp [v6] ALLOW Anywhere [v6] 443/tcp [v6] ALLOW Anywhere [v6]8
Bước 9 - Định cấu hình Opcache
Opcache là hệ thống bộ nhớ đệm của PHP. Nó hoạt động bằng cách lưu mã byte của tập lệnh được biên dịch sẵn vào bộ nhớ, vì vậy mỗi khi người dùng truy cập một trang, nó sẽ tải nhanh hơn. Opcache được cài đặt theo mặc định. Để xác minh, hãy kiểm tra phiên bản PHP
________số 8_______Điều này cho chúng tôi biết rằng Opcache đã được cài đặt và khả dụng. Trong trường hợp nó không hiển thị ở đây, bạn có thể cài đặt thủ công bằng cách chạy lệnh sau
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd0
Để thay đổi cài đặt Opcache, hãy mở tệp
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies0 để chỉnh sửa
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd1
Các cài đặt sau sẽ giúp bạn bắt đầu sử dụng Opcache và thường được khuyến nghị để có hiệu suất tốt. Bạn có thể bật cấu hình bằng cách bỏ ghi chú bằng cách xóa dấu chấm phẩy phía trước cấu hình đó
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd2
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Bước 10 - Cài đặt Certbot cho SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL miễn phí do Let's Encrypt cung cấp
Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc lấy phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd
Ubuntu 22. 04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn được cập nhật
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd3
Cài đặt Certbot
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd4
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo một liên kết tượng trưng đến thư mục
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies1
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd5
Bước 11 - Kiểm tra trang demo
Tạo trang web
Tạo và mở một trang thử nghiệm để chỉnh sửa
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd6
Dán đoạn mã sau vào đó
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd7
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Tạo chứng chỉ SSL
Chạy lệnh sau để tạo Chứng chỉ SSL
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd8
Lệnh trên sẽ tải chứng chỉ xuống thư mục
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies2 trên máy chủ của bạn
Tạo chứng chỉ nhóm Diffie-Hellman
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd9
Mở tệp
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies3 để chỉnh sửa
$ sudo add-apt-repository ppa:ondrej/php0
Dán đoạn mã sau vào dưới cùng
$ sudo add-apt-repository ppa:ondrej/php1
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Chúng tôi đã tạo chứng chỉ SSL bằng tùy chọn độc lập của Certbot. Nó chạy máy chủ web của nó để tạo chứng chỉ, điều đó có nghĩa là Nginx sẽ bị tắt trong quá trình gia hạn. Các lệnh pre_hook và post_hook chạy trước và sau khi gia hạn để tự động tắt và khởi động lại máy chủ Nginx do đó không cần can thiệp thủ công
Để kiểm tra xem việc gia hạn SSL có hoạt động tốt hay không, hãy chạy thử quy trình
$ sudo add-apt-repository ppa:ondrej/php2
Nếu bạn không thấy lỗi, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn
Định cấu hình Nginx
Tạo và mở tệp
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies4 để chỉnh sửa
$ sudo add-apt-repository ppa:ondrej/php3
Dán đoạn mã sau vào đó
$ sudo add-apt-repository ppa:ondrej/php4
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Mở tệp
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies5 để chỉnh sửa
$ sudo add-apt-repository ppa:ondrej/php5
Thêm dòng sau vào trước dòng
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies6
$ sudo add-apt-repository ppa:ondrej/php6
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc
Xác minh cấu hình Nginx của bạn
$ sudo add-apt-repository ppa:ondrej/php7
Nếu bạn không thấy lỗi nào, điều đó có nghĩa là bạn đã sẵn sàng. Khởi động máy chủ Nginx
$ sudo add-apt-repository ppa:ondrej/php8
Tải trang web của bạn bằng cách truy cập
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies7 trong trình duyệt của bạn và bạn sẽ thấy trang sau
Bạn có thể truy cập cài đặt phpMyAdmin của mình bằng cách truy cập URL
$ php --version PHP 8.1.2 [cli] [built: Jun 13 2022 13:52:54] [NTS] Copyright [c] The PHP Group Zend Engine v4.1.2, Copyright [c] Zend Technologies with Zend OPcache v8.1.2, Copyright [c], by Zend Technologies8 trong trình duyệt của bạn. Bạn có thể nhập người dùng root của mình hoặc người dùng đã tạo trước đó để đăng nhập
Phần kết luận
Điều này kết thúc hướng dẫn của chúng tôi, nơi bạn đã học cách thiết lập ngăn xếp LEMP trên Ubuntu 22. 04 máy chủ và tạo một trang web demo. Nếu bạn có bất kỳ câu hỏi nào, hãy gửi chúng trong phần bình luận bên dưới