Hướng dẫn install phpmyadmin centos 7 nginx - cài đặt phpmyadmin centos 7 nginx

Giới thiệu

Các hệ thống quản lý cơ sở dữ liệu quan hệ như MySQL và MariaDB là cần thiết cho một phần đáng kể các trang web và ứng dụng. Tuy nhiên, không phải tất cả người dùng đều cảm thấy thoải mái khi quản lý dữ liệu của họ từ dòng lệnh.

Để giải quyết vấn đề này, một dự án có tên PHPMyAdmin đã được tạo ra để cung cấp một giải pháp thay thế dưới dạng giao diện quản lý dựa trên web. Trong hướng dẫn này, chúng tôi sẽ trình bày cách cài đặt và bảo mật cấu hình phpmyadmin trên máy chủ CentOS 7. Chúng tôi sẽ xây dựng thiết lập này trên đầu máy chủ web nginx, có hồ sơ hiệu suất tốt và có thể xử lý tải nặng tốt hơn một số máy chủ web khác.

Điều kiện tiên quyết

Trước khi chúng tôi bắt đầu, có một vài yêu cầu cần phải giải quyết.

Để đảm bảo rằng bạn có một cơ sở vững chắc để xây dựng hệ thống này, bạn nên chạy qua hướng dẫn thiết lập máy chủ ban đầu của chúng tôi cho Centos 7. Trong số những điều khác, điều này sẽ hướng dẫn bạn thiết lập người dùng không rễ với quyền truy cập

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
0 cho các lệnh quản trị.

Điều kiện tiên quyết thứ hai phải được thực hiện để bắt đầu trên hướng dẫn này là cài đặt ngăn xếp LEMP (Linux, NGINX, MARIADB và PHP) trên máy chủ Centos 7 của bạn. Đây là nền tảng mà chúng tôi sẽ sử dụng để phục vụ giao diện phpmyadmin của chúng tôi (Mariadb cũng là phần mềm quản lý cơ sở dữ liệu mà chúng tôi muốn quản lý). Nếu bạn chưa có cài đặt LEMP trên máy chủ của mình, hãy làm theo hướng dẫn của chúng tôi về việc cài đặt LEMP trên CentOS 7.

Khi máy chủ của bạn ở trạng thái hoạt động đúng sau khi làm theo các hướng dẫn này, bạn có thể tiếp tục với phần còn lại của trang này.

Bước một - Cài đặt phpmyadmin

Với nền tảng LEMP của chúng tôi đã có sẵn, chúng tôi có thể bắt đầu ngay với việc cài đặt phần mềm PHPMyAdmin. Thật không may, phpmyadmin không có sẵn trong kho lưu trữ mặc định của Centos 7.

Để có được các gói chúng tôi cần, chúng tôi sẽ phải thêm một repo bổ sung vào hệ thống của chúng tôi. EPEL REPO (các gói bổ sung cho doanh nghiệp Linux) chứa nhiều gói bổ sung, bao gồm cả gói PHPMyAdmin mà chúng tôi đang tìm kiếm.Extra Packages for Enterprise Linux) contains many additional packages, including the phpMyAdmin package we are looking for.

May mắn thay, quy trình để thêm kho lưu trữ Epel đã trở nên dễ dàng hơn rất nhiều. Thực tế, có một gói gọi là

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
1 cấu hình lại trình quản lý gói của chúng tôi để sử dụng các repos epel.

Chúng ta có thể cài đặt nó ngay bây giờ bằng cách gõ:

sudo yum install epel-release

Bây giờ bạn có quyền truy cập vào kho lưu trữ Epel, bạn có thể cài đặt phpmyadmin thông qua yum:

sudo yum install phpmyadmin

Việc cài đặt bây giờ sẽ hoàn tất. Để máy chủ web nginx tìm và phục vụ các tệp phpmyadmin một cách chính xác, chúng tôi chỉ cần tạo một liên kết tượng trưng từ các tệp cài đặt đến thư mục gốc nginx của chúng tôi bằng cách nhập cái này:

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html

Chúng tôi cũng nên khởi động lại bộ xử lý PHP của mình để chắc chắn rằng nó có thể tải các mô -đun PHP bổ sung mà chúng tôi đã cài đặt:

sudo systemctl restart php-fpm

Cùng với đó, việc cài đặt PHPMyAdmin của chúng tôi hiện đang hoạt động. Để truy cập giao diện, hãy truy cập tên miền máy chủ hoặc địa chỉ IP công khai của bạn theo sau là

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
2, trong trình duyệt web của bạn:

http://server_domain_or_IP/phpMyAdmin

Hướng dẫn install phpmyadmin centos 7 nginx - cài đặt phpmyadmin centos 7 nginx

Để đăng nhập, hãy sử dụng cặp tên người dùng/mật khẩu của người dùng Mariadb hợp lệ. Người dùng

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
3 và mật khẩu quản trị Mariadb là một lựa chọn tốt để bắt đầu. Sau đó, bạn sẽ có thể truy cập giao diện quản trị:

Hướng dẫn install phpmyadmin centos 7 nginx - cài đặt phpmyadmin centos 7 nginx

Nhấp vào xung quanh để làm quen với giao diện. Trong phần tiếp theo, chúng tôi sẽ thực hiện các bước để bảo mật giao diện mới của chúng tôi.

Bước hai - Bảo mật phiên bản phpmyadmin của bạn

Phiên thể PHPMyAdmin được cài đặt trên máy chủ của chúng tôi sẽ hoàn toàn có thể sử dụng được vào thời điểm này. Tuy nhiên, bằng cách cài đặt giao diện web, chúng tôi đã phơi bày hệ thống MySQL của chúng tôi với thế giới bên ngoài.

Ngay cả với màn hình xác thực được bao gồm, đây là một vấn đề. Do sự phổ biến của PHPMyAdmin, kết hợp với lượng dữ liệu lớn mà nó cung cấp quyền truy cập, các cài đặt như thế này là mục tiêu phổ biến cho những kẻ tấn công.

Chúng tôi sẽ thực hiện hai chiến lược đơn giản để giảm bớt cơ hội cài đặt của chúng tôi bị nhắm mục tiêu và xâm phạm. Chúng tôi sẽ thay đổi vị trí của giao diện từ

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
2 thành một thứ khác thành một số nỗ lực của vũ lực bot tự động. Chúng tôi cũng sẽ tạo một cổng xác thực cấp máy chủ web bổ sung, phải được truyền trước khi đi vào màn hình đăng nhập PHPMyAdmin.

Thay đổi vị trí truy cập ứng dụng

Để máy chủ web nginx của chúng tôi tìm và phục vụ các tệp phpmyadmin của chúng tôi, chúng tôi đã tạo một liên kết tượng trưng từ thư mục phpmyadmin đến gốc tài liệu của chúng tôi trong bước trước đó.

Để thay đổi URL nơi có thể truy cập giao diện phpmyadmin của chúng tôi, chúng tôi chỉ cần đổi tên liên kết tượng trưng. Di chuyển vào thư mục gốc nginx để hiểu rõ hơn về những gì chúng ta đang làm:

cd /usr/share/nginx/html
ls -l
-rw-r--r-- 1 root root 537 Aug  5 08:15 50x.html
-rw-r--r-- 1 root root 612 Aug  5 08:15 index.html
lrwxrwxrwx 1 root root  21 Aug  6 17:29 phpMyAdmin -> /usr/share/phpMyAdmin

Như bạn có thể thấy, chúng tôi có một liên kết tượng trưng được gọi là

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
5 trong thư mục này. Chúng ta có thể thay đổi tên liên kết này thành bất cứ điều gì chúng ta muốn. Điều này sẽ thay đổi vị trí mà phpmyadmin có thể được truy cập từ trình duyệt, điều này có thể giúp che khuất điểm truy cập từ các bot được mã hóa cứng.

Chọn một tên không chỉ ra mục đích của vị trí. Trong hướng dẫn này, chúng tôi sẽ đặt tên cho vị trí truy cập của chúng tôi

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
6. Để thực hiện điều này, chúng tôi sẽ chỉ đổi tên liên kết:

sudo mv phpMyAdmin nothingtosee
ls -l
total 8
-rw-r--r-- 1 root root 537 Aug  5 08:15 50x.html
-rw-r--r-- 1 root root 612 Aug  5 08:15 index.html
lrwxrwxrwx 1 root root  21 Aug  6 17:29 nothingtosee -> /usr/share/phpMyAdmin

Bây giờ, nếu bạn đến vị trí trước đó của cài đặt PHPMyAdmin, bạn sẽ gặp lỗi 404:

http://server_domain_or_IP/phpMyAdmin

Hướng dẫn install phpmyadmin centos 7 nginx - cài đặt phpmyadmin centos 7 nginx

Tuy nhiên, giao diện phpmyadmin của bạn sẽ có sẵn tại vị trí mới chúng tôi đã chọn:

sudo yum install phpmyadmin
0

Hướng dẫn install phpmyadmin centos 7 nginx - cài đặt phpmyadmin centos 7 nginx

Thiết lập cổng xác thực máy chủ web

Tính năng tiếp theo mà chúng tôi muốn cho cài đặt của chúng tôi là một lời nhắc xác thực mà người dùng sẽ được yêu cầu vượt qua trước khi thấy màn hình đăng nhập PHPMyAdmin.

May mắn thay, hầu hết các máy chủ web, bao gồm NGINX, cung cấp khả năng này tự nhiên. Chúng tôi sẽ chỉ cần sửa đổi tệp cấu hình NGINX của chúng tôi với các chi tiết.

Trước khi chúng tôi làm điều này, chúng tôi sẽ tạo một tệp mật khẩu sẽ lưu trữ thông tin xác thực của chúng tôi. Nginx yêu cầu mật khẩu được mã hóa bằng hàm

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
7. Bộ OpenSSL, đã được cài đặt trên máy chủ của bạn, bao gồm chức năng này.

Để tạo mật khẩu được mã hóa, hãy loại:

sudo yum install phpmyadmin
1

Bạn sẽ được nhắc nhập và xác nhận mật khẩu mà bạn muốn sử dụng. Tiện ích sau đó sẽ hiển thị phiên bản mật khẩu được mã hóa sẽ trông giống như thế này:

sudo yum install phpmyadmin
2

Sao chép giá trị này, vì bạn sẽ cần dán nó vào tệp xác thực mà chúng tôi sẽ tạo.

Bây giờ, tạo một tệp xác thực. Chúng tôi sẽ gọi tệp này

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
8 và đặt nó vào thư mục cấu hình nginx:

sudo yum install phpmyadmin
3

Trong tệp này, bạn chỉ cần chỉ định tên người dùng bạn muốn sử dụng, theo sau là dấu hai chấm (:), theo sau là phiên bản mã hóa mật khẩu của bạn mà bạn nhận được từ tiện ích

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
9.

Chúng tôi sẽ đặt tên cho người dùng

sudo systemctl restart php-fpm
0 của chúng tôi, nhưng bạn nên chọn một tên người dùng khác. Tệp cho hướng dẫn này trông như thế này:

sudo yum install phpmyadmin
4

Lưu và đóng tệp khi bạn hoàn thành.

Bây giờ, chúng tôi đã sẵn sàng để sửa đổi tệp cấu hình NGINX của chúng tôi. Mở tệp này trong trình soạn thảo văn bản của bạn để bắt đầu:

sudo yum install phpmyadmin
5

Trong tệp này, chúng tôi cần thêm một phần vị trí mới. Điều này sẽ nhắm mục tiêu vị trí chúng tôi đã chọn cho giao diện phpmyadmin của chúng tôi (chúng tôi đã chọn

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
6 trong hướng dẫn này).

Tạo phần này trong khối

sudo systemctl restart php-fpm
2, nhưng bên ngoài bất kỳ khối nào khác. Chúng tôi sẽ đặt khối vị trí mới của chúng tôi bên dưới khối
sudo systemctl restart php-fpm
3 trong ví dụ của chúng tôi:

sudo yum install phpmyadmin
6

Trong khối này, chúng tôi cần đặt giá trị của một chỉ thị gọi là

sudo systemctl restart php-fpm
4 thành thông báo xác thực mà lời nhắc của chúng tôi sẽ hiển thị cho người dùng. Chúng tôi không muốn chỉ ra cho người dùng không xác thực những gì chúng tôi đang bảo vệ, vì vậy không cung cấp chi tiết cụ thể. Chúng tôi sẽ chỉ sử dụng thông tin đăng nhập quản trị viên của chúng tôi trong ví dụ của chúng tôi.

Sau đó, chúng tôi cần sử dụng một chỉ thị gọi là

sudo systemctl restart php-fpm
5 để trỏ máy chủ web của chúng tôi vào tệp xác thực mà chúng tôi đã tạo. Nginx sẽ nhắc người dùng để biết chi tiết xác thực và kiểm tra xem các giá trị được nhập có phù hợp với những gì nó tìm thấy trong tệp được chỉ định không.

Sau khi chúng tôi kết thúc, tệp sẽ trông như thế này:

sudo yum install phpmyadmin
7

Lưu và đóng tệp khi bạn hoàn thành.

Bây giờ, chúng tôi đã sẵn sàng để sửa đổi tệp cấu hình NGINX của chúng tôi. Mở tệp này trong trình soạn thảo văn bản của bạn để bắt đầu:

sudo yum install phpmyadmin
8

Trong tệp này, chúng tôi cần thêm một phần vị trí mới. Điều này sẽ nhắm mục tiêu vị trí chúng tôi đã chọn cho giao diện phpmyadmin của chúng tôi (chúng tôi đã chọn

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
6 trong hướng dẫn này).

sudo yum install phpmyadmin
0

Hướng dẫn install phpmyadmin centos 7 nginx - cài đặt phpmyadmin centos 7 nginx

Tạo phần này trong khối

sudo systemctl restart php-fpm
2, nhưng bên ngoài bất kỳ khối nào khác. Chúng tôi sẽ đặt khối vị trí mới của chúng tôi bên dưới khối
sudo systemctl restart php-fpm
3 trong ví dụ của chúng tôi:

Trong khối này, chúng tôi cần đặt giá trị của một chỉ thị gọi là sudo systemctl restart php-fpm 4 thành thông báo xác thực mà lời nhắc của chúng tôi sẽ hiển thị cho người dùng. Chúng tôi không muốn chỉ ra cho người dùng không xác thực những gì chúng tôi đang bảo vệ, vì vậy không cung cấp chi tiết cụ thể. Chúng tôi sẽ chỉ sử dụng thông tin đăng nhập quản trị viên của chúng tôi trong ví dụ của chúng tôi.

Sau đó, chúng tôi cần sử dụng một chỉ thị gọi là

sudo systemctl restart php-fpm
5 để trỏ máy chủ web của chúng tôi vào tệp xác thực mà chúng tôi đã tạo. Nginx sẽ nhắc người dùng để biết chi tiết xác thực và kiểm tra xem các giá trị được nhập có phù hợp với những gì nó tìm thấy trong tệp được chỉ định không.