Ngăn xếp phần mềm LEMP là một nhóm phần mềm nguồn mở cho phép máy chủ lưu trữ các trang web và ứng dụng động được viết bằng PHP. Đây là từ viết tắt của Linux, Nginx (phát âm là Engine-X), MySQL và PHP.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Ngăn xếp LEMP trên máy chủ Ubuntu 22.04. Bạn cũng sẽ học cách cài đặt các ứng dụng như phpMyAdmin.
Kiểm tra trạng thái của tường lửa.
Bạn sẽ thấy nội dung tương tự như sau.
Cho phép cổng HTTP và HTTPs.
Kiểm tra lại trạng thái để xác nhận.
Chúng tôi đã cài đặt các tiện ích 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 sử dụng 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.
Bây giờ, bạn có thể cài đặt bất kỳ phiên bản PHP nào.
Kiểm tra phiên bản PHP đã cài đặt.
Kiểm tra phiên bản MySQL.
Bước này cần thiết cho MySQL phiên bản 8.0.28 trở lên. Nhập MySQL Shell.
Chạy lệnh sau để đặt mật khẩu cho người dùng root của bạn. Đảm bảo mật khẩu có sự kết hợp giữa số, chữ hoa, chữ thường và ký tự đặc biệt.
Thoát khỏi shell.
Chạy tập lệnh cài đặt bảo mật MySQL.
Bạn sẽ được yêu cầu cài đặt Thành phần Xác thực Mật khẩu. Thành phần này kiểm tra độ mạnh của mật khẩu được sử dụng trong MySQL. Nhấn Y để cài đặt.
Tiếp theo, bạn sẽ được yêu cầu đặt mức chính sách xác thực mật khẩu. Chọn 2 vì đây là mức 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 thử nghiệm và tải lại bảng đặc quyền.
Tạo một cơ sở dữ liệu mẫu.
Tạo một tài khoản người dùng SQL.
Cấp tất cả các đặc quyền trên cơ sở dữ liệu cho người dùng.
Xóa bỏ các quyền của người dùng.
Thoát khỏi shell.
Chúng ta hãy đăng nhập lại vào shell MySQL bằng người dùng mới tạo.
Tạo một bảng thử nghiệm.
Chèn dữ liệu thử nghiệm.
Lặp lại lệnh trên nhiều lần để thêm nhiều mục nhập hơn. Chạy lệnh sau để kiểm tra nội dung của bảng.
Bạn sẽ nhận được kết quả sau.
Thoát khỏi shell MySQL.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật kho lưu trữ hệ thống.
Cài đặt Nginx.
Xác minh cài đặt.
Để đặt kích thước tải lên tệp, hãy thay đổi giá trị của upload_max_filesize và post_max_size variables.
Cấu hình giới hạn bộ nhớ của PHP tùy thuộc vào tài nguyên và yêu cầu của máy chủ.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp /etc/php/8.0/fpm/pool.d/www.conf.
Chúng ta cần đặt người dùng/nhóm Unix của các quy trình PHP thành nginx. Tìm các dòng user=www-data và group=www-data trong tệp và thay đổi chúng thành nginx.
Ngoài ra, hãy tìm các dòng listen.owner=www-data và listen.group=www-data trong tệp và đổi chúng thành nginx.
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.
Tạo một thư mục công khai cho trang web.
Giải nén tệp lưu trữ vào thư mục công khai.
Chuyển sang thư mục công khai.
Đổi tên thư mục đã giải nén thành một tên khó hiểu để cải thiện bảo mật.
Mở tệp cấu hình để chỉnh sửa.
Tìm dòng $cfg['blowfish_secret'] = ''; 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 như hiển thị.
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 của trang web và phpMyAdmin thành máy chủ Nginx.
Xóa thư mục thiết lập phpMyAdmin.
Điều này cho chúng ta 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.
Để thay đổi cài đặt Opcache, hãy mở tệp /etc/php/8.1/fpm/conf.d/10-opcache.ini để chỉnh sửa.
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ỏ chú thích bằng cách xóa dấu chấm phẩy trước cấu hình.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc tải 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 được cài đặt Snapd theo mặc định. Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy bằng cách tạo liên kết tượng trưng đến thư mục /usr/bin.
Dán mã sau trong đó.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Ngăn xếp LEMP trên máy chủ Ubuntu 22.04. 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áy chủ chạy Ubuntu 22.04.
- Người dùng không phải root có quyền sudo.
- Tường lửa đơn giản (UFW) được bật và đang chạy.
-
Mọi thứ đã được cập nhật.
Mã:$ sudo apt update && sudo apt upgrade
Bước 1 - 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à 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.
Mã:
$ sudo ufw status
Mã:
Trạng thái: activeTo Action From-- ------ ----OpenSSH ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)
Mã:
$ sudo ufw allow http$ sudo ufw allow https
Mã:
$ sudo ufw statusTrạng thái: activeĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443/tcp ALLOW AnywhereOpenSSH (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 được cài đặt sẵn PHP 8.1 theo mặc định. Bạn có thể cài đặt bằng cách chạy lệnh sau.
Mã:
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd
Để luôn sử dụng 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.
Mã:
$ sudo add-apt-repository ppa:ondrej/php
Mã:
$ sudo apt install php8.0-fpm php8.0-cli
Mã:
$ php --versionPHP 8.1.2 (cli) (được xây dựng: 13 tháng 6 năm 2022 13:52:54) (NTS)Bản quyền (c) The PHP GroupZend Engine v4.1.2, Bản quyền (c) Zend Technologies với Zend OPcache v8.1.2, Bản quyền (c), của Zend Technologies
Bước 3 - Cài đặt MySQL
Ubuntu 22.04 đi kèm với phiên bản MySQL mới nhất. Bạn có thể cài đặt bằng một lệnh duy nhất.
Mã:
$ sudo apt install mysql-server
Mã:
$ mysql --versionmysql Ver 8.0.29-0ubuntu0.22.04.2 cho Linux trên x86_64 ((Ubuntu))
Mã:
$ sudo mysql
Mã:
mysql> ALTER USER 'root'@'localhost' ĐƯỢC XÁC NHẬN VỚI mysql_native_password BỞI 'YourPassword12!';
Mã:
mysql> exit
Mã:
$ sudo mysql_secure_installation
Tiếp theo, bạn sẽ được yêu cầu đặt mức chính sách xác thực mật khẩu. Chọn 2 vì đây là mức 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 thử nghiệm và tải lại bảng đặc quyền.
Bước 4 - Cấu hình MySQL
Đăng nhập vào shell MySQL. Nhập mật khẩu root của bạn khi được nhắc.
Mã:
$ sudo mysql -u root -p
Mã:
mysql> CREATE DATABASE exampledb;
Mã:
mysql> CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'YourPassword2!';
Mã:
mysql> CẤP TẤT CẢ CÁC QUYỀN TRÊN exampledb.* CHO 'exampleuser'@'localhost';
Mã:
mysql> XẢ BỎ CÁC QUYỀN;
Mã:
mysql> thoát
Mã:
$ sudo mysql -u exampleuser -p
Mã:
mysql> CREATE TABLE exampledb.name_list ( sno INT AUTO_INCREMENT, content VARCHAR(255), PRIMARY KEY(sno) );
Mã:
mysql> INSERT INTO exampledb.name_list (content) VALUES ("Navjot");
Mã:
mysql> SELECT * FROM exampledb.name_list;
Mã:
+-----+---------+| sno | content |+-----+---------+| 1 | Navjot || 2 | Adam || 3 | Josh || 4 | Peter |+-----+---------+4 hàng trong tập hợp (0,00 giây)
Mã:
mysql> exit
Bước 5 - Cài đặt Nginx
Ubuntu 22.04 đi kèm 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 lưu trữ Nginx chính thức.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \| sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
Mã:
$ nginx -vphiên bản nginx: nginx/1.22.0
Bước 6 - Cấu hình PHP-FPM
Mở php.ini để chỉnh sửa.
Mã:
$ sudo nano /etc/php/8.1/fpm/php.ini
Mã:
upload_max_filesize = 50M...post_max_size = 50M
Mã:
memory_limit = 256M
Mở tệp /etc/php/8.0/fpm/pool.d/www.conf.
Mã:
$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf
Mã:
...; Người dùng/nhóm quy trình Unix; Lưu ý: Người dùng là bắt buộc. Nếu nhóm không được đặt, nhóm người dùng mặc định; sẽ được sử dụng.user = nginxgroup = nginx...
Mã:
listen.owner = nginxlisten.group = nginx
Khởi động lại quy trình PHP-fpm.
Mã:
$ sudo systemctl restart php8.1-fpm
Bước 7 - Cài đặt phpMyAdmin
Tải xuống tệp lưu trữ phpMyAdmin cho ngôn ngữ tiếng Anh.
Mã:
$ wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-english.tar.gz
Mã:
$ sudo mkdir /var/www/html/example.com -p
Mã:
$ sudo tar -xzvf phpMyAdmin-5.2.0-english.tar.gz -C /var/www/example.com
Mã:
$ cd /var/www/html/example.com
Mã:
$ sudo mv phpMyAdmin-5.2.0-english sm175
Bước 8 - Cấu hình phpMyAdmin
Sao chép tệp cấu hình mẫu.
Mã:
$ sudo cp sm175/config.sample.inc.php sm175/config.inc.php
Mã:
$ sudo nano sm175/config.inc.php
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 như hiển thị.
Mã:
$cfg['blowfish_secret'] = 'Tc/HfLPBOAPxJ-rhQP}HJoZEK69c3j:m';
Thay đổi quyền sở hữu của trang web và phpMyAdmin thành máy chủ Nginx.
Mã:
$ sudo chown -R nginx:nginx /var/www/html/example.com
Mã:
$ sudo rm -rf /var/www/html/example.com/sm175/setup
Bước 9 - Cấu hình Opcache
Opcache là hệ thống lưu trữ đệm của PHP. Nó hoạt động bằng cách lưu mã bytecode được biên dịch trước trong bộ nhớ, do đó, mỗi lần người dùng truy cập một trang, trang đó 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.
Mã:
$ php --versionPHP 8.1.2 (cli) (được xây dựng: 13 tháng 6 năm 2022 13:52:54) (NTS)Bản quyền (c) The PHP GroupZend Engine v4.1.2, Bản quyền (c) Zend Technologies với Zend OPcache v8.1.2, Bản quyền (c), của Zend Technologies
Mã:
$ sudo apt install php-opcache
Mã:
$ sudo nano /etc/php/8.1/fpm/conf.d/10-opcache.ini
Mã:
opcache.enable_cli=1opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=60
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 tải 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 được cài đặt Snapd theo mặc định. Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core$ sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Bước 11 - Kiểm tra trang web demo
Tạo trang web
Tạo và mở trang thử nghiệm để chỉnh sửa.
Mã:
$ sudo nano /var/www/html/example.com/index.php
Mã: