phpMyAdmin은 웹 기반 인터페이스를 통해 MySQL 및 MariaDB 서버의 관리를 단순화하도록 설계된 무료 오픈 소스 PHP 기반 애플리케이션입니다.
phpMyAdmin을 사용하면 MySQL 데이터베이스, 사용자 계정 및 권한을 관리하고, SQL 문을 실행하고, 다양한 데이터 형식으로 데이터를 가져오고 내보낼 수 있습니다.
이 튜토리얼에서는 Apache 웹 서버를 사용하여 Debian 9에 phpMyAdmin을 설치하고 보호하는 데 필요한 단계를 설명합니다.
전제조건
이 자습서를 진행하기 전에 다음 요구 사항을 충족했는지 확인하십시오.
- Debian 서버에 LAMP(Linux, Apache, MySQL 및 PHP)가 설치
- sudo 권한을 가진 사용자로 로그인
선택 사항이지만 HTTPS를 통해 phpMyAdmin 설치에 액세스하는 것이 좋습니다. 도메인이 아직 SSL로 보호되지 않은 경우 이 안내서에 따라 Devian 9에서 Let's Encrypt를 사용하여 Apache를 보호할 수 있습니다.
phpMyAdmin 설치
Debian 9에 phpMyAdmin을 설치하려면 다음 단계를 수행하십시오.
패키지 인덱스를 업데이트하고 시스템 패키지를 최신 버전으로 업그레이드합니다.
sudo apt update && sudo apt upgrade
다음을 입력하여 기본 Debian 리포지토리에서 phpMyAdmin 패키지를 설치합니다.
sudo apt install phpmyadmin
설치 관리자는 사용자에게 phpMyAdmin을 실행하도록 자동으로 구성되어야 하는 웹 서버를 선택하라는 메시지를 표시하고 Space를 누른 다음 Enter 키를 눌러 apache를 선택합니다.
그런 다음 dbconfig-common을 사용하여 데이터베이스를 설정할지 여부를 묻는 메시지가 나타나고 예를 선택한 후 Enter 키를 누릅니다.
데이터베이스에 등록할 phpMyAdmin의 비밀번호를 입력하고 확인을 선택한 후 Enter 키를 누릅니다.
암호를 확인하고 확인을 선택한 다음 Enter 키를 누릅니다.
설치 프로세스가 완료되면 Apache를 다시 시작하여 변경 내용을 적용합니다.
sudo systemctl restart apache2
관리 MySQL 사용자 생성
MariaDB 10.1 이상을 실행하는 데비안 시스템에서는 루트 사용자가 기본적으로 auth_socket 인증 방법을 사용하도록 설정되어 있습니다.
auth_socket 플러그인은 로컬 호스트에서 유닉스 소켓 파일을 통해 연결하는 사용자를 인증합니다. 즉, 암호를 입력하여 루트로 인증할 수 없습니다.
MySQL 사용자 루트의 인증 방법을 변경하는 대신 새 관리 MySQL 사용자를 생성하겠습니다. 이 사용자는 루트 사용자와 동일한 권한을 가지며 mysql_native_password 인증 방법을 사용하도록 설정됩니다.
이 사용자를 사용하여 phpMyAdmin 대시보드에 로그인하고 MySQL 또는 MariaDB 서버에서 관리 작업을 미리 수행합니다.
먼저 MySQL 서버에 루트 사용자로 로그인합니다.
sudo mysql
MySQL 셸 내에서 다음 명령을 실행하여 새 관리 사용자를 생성하고 적절한 사용 권한을 부여합니다.
CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';
GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
관리 사용자 이름을 padmin으로 지정했습니다. 원하는 이름을 사용할 수 있습니다. 강력한 암호를 설정해야 합니다.
phpMyAdmin 액세스
phpMyAdmin 인터페이스에 액세스하려면 즐겨찾기 브라우저를 열고 서버의 도메인 이름 또는 공용 IP 주소와 /phpmyadmin을 차례로 입력합니다.
https://your_domain_or_ip_address/phpmyadmin
이전에 만든 관리 사용자 로그인 자격 증명을 입력하고 이동을 클릭합니다.
로그인하면 다음과 같은 모양의 phpMyAdmin 대시보드가 표시됩니다.
phpMyAdmin 보호
추가 보안 계층을 추가하기 위해 기본 인증을 설정하여 phpMyAdmin 디렉토리를 암호로 보호합니다.
먼저 Apache 패키지와 함께 제공되는 htpasswd 도구를 사용하여 사용자와 함께 암호 파일을 생성하겠습니다. .htpasswd 파일을 /etc/phpmyadmin 디렉토리에 저장합니다.
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin
# New password:
# Re-type new password:
# Adding password for user padmin
이 예에서는 padmin이라는 사용자를 만듭니다. 사용자 이름을 선택할 수 있습니다. 관리 MySQL 사용자와 동일할 필요는 없습니다.
위의 명령은 사용자의 암호를 입력하고 확인하라는 메시지를 표시합니다.
사용자를 추가하려는 경우 -c 플래그 없이 동일한 명령을 사용할 수 있습니다.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
다음 단계는 Apache가 phpMyAdmin 디렉토리를 암호로 보호하고 .htpasswd 파일을 사용하도록 구성하는 것입니다.
이렇게 하려면 phpMyAdmin.conf 파일을 여십시오. 이 파일은 phpMyAdmin 설치 중에 자동으로 생성됩니다.
# /etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # edit this line
DirectoryIndex index.php
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
<IfModule mod_php5.c>
...
변경 내용을 적용하려면 파일을 저장한 후 닫은 후 Apache를 다시 시작하십시오.
sudo systemctl restart apache2
이제 phpMyAdmin에 액세스할 때 이전에 생성한 사용자의 로그인 자격 증명을 입력하라는 메시지가 표시됩니다.
https://your_domain_or_ip_address/phpmyadmin
기본 인증을 입력하면 phpMyAdmin 로그인 페이지로 이동하여 MySQL 관리 사용자 로그인 자격 증명을 입력해야 합니다.
또한 /phpmyadmin 별칭을 보다 독특하고 안전한 것으로 변경하는 것도 좋습니다.
'SW > 리눅스' 카테고리의 다른 글
Ubuntu 18.04 : Webmin 설치 방법, 예제, 명령어 (1) | 2021.03.19 |
---|---|
CentOS 7 : VSFTPD로 FTP Server 설정 방법, 예제, 명령어 (0) | 2021.03.18 |
Debian 9 : Docker Compose 설치, 사용 방법, 예제, 명령어 (0) | 2021.03.16 |
Ubuntu 18.04 : Flask 설치하는 방법, 예제, 명령어 (0) | 2021.03.15 |
LINUX : SFTP Command로 파일 전송하는 방법, 예제, 명령어 (0) | 2021.03.14 |