phpMyAdmin là một ứng dụng mã nguồn mở và miễn phí có thể được sử dụng để quản lý cơ sở dữ liệu MySQL và MariaDB thông qua giao diện dựa trên web. Với phpMyAdmin, bạn có thể thực hiện một số tác vụ bao gồm quản lý tài khoản và đặc quyền người dùng, nhập và xuất dữ liệu, thực thi các câu lệnh SQL và nhiều hơn nữa. Nó đi kèm với một loạt các tài liệu giúp bạn thực hiện nhiều hoạt động khác nhau.
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 20.04 và bảo mật nó bằng Chứng chỉ SSL Let's Encrypt miễn phí.
Sau 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.
Trong quá trình cài đặt, bạn sẽ được yêu cầu chọn máy chủ web như hiển thị bên dưới:
Vì chúng ta đang sử dụng máy chủ web Nginx, bạn chỉ cần nhấn TAB, sau đó ENTER để 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 Yes 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ư hiển thị bên dưới:
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.
Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
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.
Để thực hiện, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Cung cấp mật khẩu root của bạn khi được nhắc, sau đó tạo một người dùng mới bằng lệnh sau:
Tiếp theo, cấp tất cả các quyền cho người dùng bằng lệnh sau:
Tiếp theo, xóa các quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, tạo liên kết tượng trưng đến thư mục /etc/nginx/sites-enabled/:
Tiếp theo, đặt hash_bucket_size trong tệp cấu hình mặc định của Nginx:
Thêm dòng sau bên dưới dòng "http {":
Lưu và đóng tệp. Sau đó, kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Bạn cũng có thể kiểm tra trạng thái của dịch vụ Nginx bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Đầu tiên, hãy thêm kho lưu trữ Certbot bằng lệnh sau:
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt máy khách Certbot bằng lệnh sau:
Sau 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 tên miền của bạn:
Bạn sẽ được yêu cầu cung cấp email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không:
Nhập 2 và nhấn Enter để hoàn tất quá trình cài đặt.
Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút Go. Bạn sẽ thấy bảng điều khiển mặc định của phpMyAdmin ở trang sau:
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 20.04 và bảo mật nó bằng Chứng chỉ SSL Let's Encrypt miễn phí.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Một tên miền hợp lệ được trỏ đến máy chủ của bạn.
- Một mật khẩu gốc được 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 tiện ích mở rộng PHP cần thiết 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:
Mã:
apt-get install nginx mariadb-server php php-cli php-mysql php-mbstring php-zip php-gd php-json php-curl php-fpm -y
Cài đặt phpMyAdmin
Theo mặc định, gói phpMyAdmin có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt bằng cách chỉ cần chạy lệnh sau:
Mã:
apt-get install phpmyadmin -y
Vì chúng ta đang sử dụng máy chủ web Nginx, bạn chỉ cần nhấn TAB, sau đó ENTER để 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 Yes 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ư hiển thị bên dưới:
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.
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:
Mã:
mysql_secure_installation
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có):Đặt mật khẩu gốc? [Y/n] YMậ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] YKhông cho phép đăng nhập root từ xa? [Y/n] YXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Để thực hiện, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Mã:
MariaDB [(none)]> tạo người dùng admin@localhost được xác định bởi 'password';
Mã:
MariaDB [(none)]> cấp tất cả các quyền trên *.* cho admin@localhost với tùy chọn cấp;
Mã:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Cấu hình Nginx cho phpMyAdmin
Bạn có thể tạo tệp cấu hình máy chủ ảo Nginx mới cho phpMyAdmin bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/phpmyadmin
Mã:
server { listen 80; listen [::]:80; server_name phpmyadmin.linuxbuz.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; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ \.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; } location ~ /\.ht { deny all; }}
Mã:
ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/
Mã:
nano /etc/nginx/nginx.conf
Mã:
server_names_hash_bucket_size 64;
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? 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) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2020-05-15 06:24:03 UTC; 2 giây trước Tài liệu: man:nginx(8) Tiến trình: 107736 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 107737 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 107738 (nginx) Nhiệm vụ: 3 (giới hạn: 2282) Bộ nhớ: 3,7M CGroup: /system.slice/nginx.service ??107738 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??107739 nginx: tiến trình làm việc ??107740 nginx: tiến trình làm việc15 tháng 5 06:24:03 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...15 tháng 5 06:24:03 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Bảo mật phpMyAdmin bằng 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, hãy thêm kho lưu trữ Certbot bằng lệnh sau:
Mã:
add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471
Mã:
apt-get update -y
apt-get install certbot python3-certbot-nginx -y
Mã:
certbot --nginx -d phpmyadmin.linuxbuz.com
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://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ạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và là tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)es/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho phpmyadmin.linuxbuz.comĐang chờ xác minh...Dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/sites-enabled/phpmyadmin
Mã:
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 bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Mã:
Chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/sites-enabled/phpmyadmin- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://phpmyadmin.linuxbuz.comBạ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.linuxbuz.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.linuxbuz.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/phpmyadmin.linuxbuz.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 12-08-2020. Để có phiên bản mới hoặc đã chỉnh sửa 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ả* chứng chỉ của bạn, hãy chạy "certbot renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ 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.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang đăng nhập phpMyAdmin:Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút Go. Bạn sẽ thấy bảng điều khiển mặc định của phpMyAdmin ở trang sau: