Cách cài đặt PhpMyAdmin với SSL miễn phí Let’s Encrypt trên Ubuntu 22.04
phpMyAdmin là một ứng dụng miễn phí, mã nguồn mở và dựa trên web được sử dụng để quản lý cơ sở dữ liệu thông qua trình duyệt web. Nó cung cấp giao diện web đơn giản và thân thiện với người dùng, giúp quản trị viên cơ sở dữ liệu thực hiện một số tác vụ, quản lý tài khoản người dùng và đặc quyền, nhập và xuất dữ liệu, thực thi câu lệnh SQL, v.v. Nó được viết bằng PHP cung cấp cho người dùng mới bắt đầu khả năng tương tác với cơ sở dữ liệu MySQL của họ.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt phpMyAdmin với Nginx trên Ubuntu 22.04.
Điều kiện tiên quyết
- Máy chủ chạy Ubuntu 22.04.
- Tên miền hợp lệ được trỏ tới máy chủ của bạn.
- Mật khẩu gốc được định cấu hình trên máy chủ của bạn.
Cài đặt Nginx, MariaDB và PHP
Trước tiên, bạn sẽ cần cài đặt máy chủ web Nginx, MariaDB, PHP và các phần mở rộng PHP bắt buộc khác trong máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
apt-get install nginx mariadb-server php php-cli php-mysql php-mbstring php-zip php-gd php-json php-curl php-fpm -y
Khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.
Cài đặt phpMyAdmin
Theo mặc định, gói phpMyAdmin có sẵn trong kho lưu trữ mặc định Ubuntu 22.04. Bạn có thể cài đặt nó bằng cách chạy lệnh sau:
apt-get install phpmyadmin -y
Trong quá trình cài đặt, bạn sẽ được yêu cầu chọn máy chủ web như hình dưới đây:
Vì chúng tôi đang sử dụng máy chủ web Nginx, bạn chỉ cần nhấn TAB, sau đó NHẬP VÀO để bỏ qua lời nhắc này. Bạn sẽ được yêu cầu cấu hình cơ sở dữ liệu để phpMyAdmin sử dụng.
Chọn Có và nhấn Enter để tiếp tục. Bạn sẽ được yêu cầu chọn và xác nhận mật khẩu cho ứng dụng phpMyAdmin như hình dưới đây:
Cung cấp mật khẩu mong muốn của bạn và nhấn Enter để hoàn tất quá trình cài đặt.
Định cấu hình cơ sở dữ liệu MariaDB
Theo mặc định, MariaDB không được bảo mật. Vì vậy, hãy bảo mật MariaDB và đặt mật khẩu gốc MariaDB bằng lệnh sau:
mysql_secure_installation
Trả lời tất cả các câu hỏi như hình dưới đây:
Nhập mật khẩu hiện tại cho root (nhập cho không): Đặt mật khẩu gốc? [Y / n] Y Mật khẩu mới: Nhập lại mật khẩu mới: Xóa người dùng ẩn danh? [Y / n] Y Không cho phép đăng nhập root từ xa? [Y / n] Y Xóa cơ sở dữ liệu thử nghiệm và truy cập vào nó? [Y / n] Y Tải lại bảng đặc quyền ngay bây giờ? [Y / n] Y
Sau khi bảo mật MariaDB, bạn nên tạo một người dùng riêng để kết nối phpMyAdmin và quản lý cơ sở dữ liệu.
Để làm như vậy, hãy đăng nhập vào trình bao MariaDB bằng lệnh sau:
mysql -u root -p
Cung cấp mật khẩu gốc của bạn khi được nhắc, sau đó tạo người dùng mới bằng lệnh sau:
MariaDB [(none)]> create user [email protected] identified by 'password';
Tiếp theo, cấp tất cả các đặc quyền cho người dùng bằng lệnh sau:
MariaDB [(none)]> grant all privileges on *.* to [email protected] with grant option;
Tiếp theo, xóa các đặc quyền và thoát khỏi trình bao MariaDB bằng lệnh sau:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Sau khi hoàn tất, bạn có thể chuyển sang bước tiếp theo.
Định cấu hình Nginx cho phpMyAdmin
Tiếp theo, bạn sẽ cần tạo một khối máy chủ lưu trữ ảo Nginx để lưu trữ phpMyAdmin. Bạn có thể tạo nó bằng lệnh sau:
nano /etc/nginx/conf.d/phpmyadmin.conf
Thêm các dòng sau:
người phục vụ { nghe 80; nghe [::]: 80; server_name phpmyadmin.example.com; root / usr / share / phpmyadmin /; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; địa điểm / { try_files $ uri $ uri / /index.php; } vị trí ~ ^ / (doc | sql | setup) / { Phủ nhận tất cả; } vị trí ~ .php $ { fastcgi_pass unix: /run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; bao gồm fastcgi_params; bao gồm các đoạn mã / fastcgi-php.conf; } vị trí ~ /.ht { Phủ nhận tất cả; } }
Lưu và đóng tập tin. Sau đó, kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
nginx -t
Bạn sẽ nhận được kết quả sau:
nginx: cú pháp file cấu hình /etc/nginx/nginx.conf là ok nginx: tệp cấu hình /etc/nginx/nginx.conf kiểm tra thành công
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi: Quảng cáo
systemctl restart nginx
Bạn cũng có thể kiểm tra trạng thái Nginx bằng lệnh sau:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Hoạt động: hoạt động (đang chạy) kể từ Chủ nhật 2022-06-12 04:37:05 UTC; 6 giây trước Tài liệu: man: nginx (8) Process: 20020 ExecStartPre = / usr / sbin / nginx -t -q -g daemon on; master_process on; (mã = đã thoát, trạng thái = 0 / THÀNH CÔNG) Process: 20021 ExecStart = / usr / sbin / nginx -g daemon on; master_process on; (mã = đã thoát, trạng thái = 0 / THÀNH CÔNG) PID chính: 20022 (nginx) Nhiệm vụ: 2 (giới hạn: 2292) Bộ nhớ: 2,6 triệu CPU: 33ms CGroup: /system.slice/nginx.service ?? 20022 "nginx: master process / usr / sbin / nginx -g daemon on; master_process on;" ?? 20023 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " "" "" "" "" "" "" 12 tháng 6 04:37:05 ubuntu systemd [1]: Khởi động một máy chủ web hiệu suất cao và một máy chủ proxy ngược ... 12 tháng 6 04:37:05 ubuntu systemd [1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Tiếp theo, thay đổi quyền sở hữu và quyền của thư mục phpMyAdmin:
chown -R www-data:www-data /usr/share/phpmyadmin/
chmod -R 755
Bảo mật phpMyAdmin với Let’s Encrypt SSL
Trước khi bắt đầu, bạn sẽ cần cài đặt ứng dụng khách Certbot để tải xuống và cài đặt Let’s Encrypt SSL.
Đầu tiên, thêm kho lưu trữ Certbot bằng lệnh sau:
add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471
Tiếp theo, cập nhật kho lưu trữ và cài đặt ứng dụng khách Certbot bằng lệnh sau:
apt-get update -y
apt-get install certbot python3-certbot-nginx -y
Khi Certbot đã được cài đặt, hãy chạy lệnh sau để tải xuống và cài đặt Let’s Encrypt SSL cho miền của bạn:
certbot --nginx -d phpmyadmin.example.com
Bạn sẽ được yêu cầu cung cấp email của mình và chấp nhận điều khoản dịch vụ như hình dưới đây:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.log Các plugin đã chọn: Authenticator nginx, Installer nginx Nhập địa chỉ email (được sử dụng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' vào hủy): [email được bảo vệ] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vui lòng đọc Điều khoản Dịch vụ tại https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phải đồng ý đăng ký với máy chủ ACME tại https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A) gree / (C) ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bạn có sẵn sàng chia sẻ địa chỉ email của mình với Biên giới Điện tử không Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận tổ chức phát triển Certbot? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôi mã hóa web, tin tức EFF, chiến dịch và các cách hỗ trợ tự do kỹ thuật số. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y) es / (N) o: Y Lấy chứng chỉ mới Thực hiện các thử thách sau: http-01 thách thức cho phpmyadmin.example.com Đang chờ xác minh ... Làm sạch những thách thức Triển khai chứng chỉ tới VirtualHost / etc / nginx / sites-enable / phpmyadmin
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Không chuyển hướng - Không thực hiện thêm thay đổi nào đối với cấu hình máy chủ web. 2: Chuyển hướng - Thực hiện tất cả các yêu cầu chuyển hướng đến quyền truy cập HTTPS an toàn. Chọn cái này cho các trang web mới hoặc nếu bạn tự tin rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tác điều này thay đổi bằng cách chỉnh sửa cấu hình máy chủ web của bạn. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Gõ 2 và nhấn Enter để kết thúc quá trình cài đặt.
Chuyển hướng tất cả lưu lượng trên cổng 80 sang ssl trong / etc / nginx / sites-enable / phpmyadmin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Xin chúc mừng! Bạn đã kích hoạt thành công https://phpmyadmin.example.com Bạn nên kiểm tra cấu hình của mình tại: https://www.ssllabs.com/ssltest/analyze.html?d=phpmyadmin.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/phpmyadmin.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/phpmyadmin.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 2022-09-12. Để có được một cái mới hoặc đã được tinh chỉnh phiên bản của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác * tất cả * trong số chứng chỉ của bạn, chạy "certbot gia hạn" - Nếu bạn thích Certbot, hãy cân nhắc ủng hộ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Truy cập phpMyAdmin
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL https://phpmyadmin.eample.com . Bạn sẽ được chuyển hướng đến trang đăng nhập phpMyAdmin:
Cung cấp tên người dùng, mật khẩu quản trị viên của bạn và nhấp vào nút Bắt đầu . Bạn sẽ thấy bảng điều khiển mặc định phpMyAdmin trên trang sau:
Sự kết luận
Xin chúc mừng! bạn đã cài đặt thành công phpMyAdmin và bảo mật nó bằng Let’s Encrypt SSL trên Ubuntu 22.04. Giờ đây, bạn có thể kết nối với phpMyAdmin, quản lý cơ sở dữ liệu của mình và thực hiện một số tác vụ thông qua trình duyệt web.