SW/리눅스

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어

얇은생각 2020. 12. 31. 07:30
반응형

phpMyAdmin은 웹 기반 인터페이스를 통해 MySQL 및 MariaDB 서버의 관리를 처리하도록 설계된 오픈 소스 PHP 응용프로그램입니다. 

phpMyAdmin을 사용하면 MySQL 데이터베이스, 사용자 계정 및 권한을 관리하고 SQL 상태를 실행하며 다양한 데이터 형식으로 데이터를 가져오고 내보낼 수 있습니다.

튜토리얼에서는 Ubuntu 18.04에서 Apache를 사용하여 phpMyAdmin을 설치하고 보호하는 데 필요한 단계를 설명합니다.

 

 

 

필수 구성 요소

이 튜토리얼을 계속하기 전에 다음 필수 구성 요소를 충족했는지 확인합니다.

- Ubuntu 서버에 LAMP(Linux, Apache, MySQL 및 PHP)가 설치되어 있어야 합니다.

- sudo 권한을 가진 사용자로 로그인했습니다.

 

필요하지는 않지만 HTTPS를 통해 phpMyAdmin 설치에 액세스하는 것이 좋습니다. SSL에 의해 도메인이 아직 보호되지 않은 경우 이 안내서에 따라 Ubuntu 18.04에서 암호화로 Apache를 보호할 수 있습니다.

 

 

 

phpMyAdmin 설치

Ubuntu 18.04 서버에 phpMyAdmin을 설치하려면 다음 단계를 수행합니다.

01. 패키지 인덱스를 업데이트하고 시스템 패키지를 최신 버전으로 업그레이드합니다.

sudo apt update && sudo apt upgrade

 

 

02. 다음 명령을 사용하여 기본 Ubuntu 리포지토리에서 phpMyAdmin 패키지를 설치합니다.

sudo apt install phpmyadmin

 

 

설치 관리자가 phpMyAdmin을 실행하도록 자동으로 구성해야 하는 웹 서버를 선택하라는 메시지를 표시하고 Space를 누른 다음 Enter 키를 눌러 apache를 선택합니다.

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 1

 

 

그런 다음 dbconfig-common을 사용하여 데이터베이스를 설정할지 여부를 묻는 메시지가 표시되고 Yes를 선택한 후 Enter 키를 누릅니다.

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 2

 

 

phpMyAdmin이 데이터베이스에 등록할 암호를 입력하고 확인을 선택한 후 Enter 키를 누릅니다.

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 3

 

 

암호를 확인하라는 메시지가 표시되고 동일한 암호를 입력한 다음 확인을 선택하고 Enter 키를 누릅니다.

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 4

 

 

03. 설치 프로세스가 완료되면 Apache를 다시 시작하여 변경 내용을 적용합니다.

sudo systemctl restart apache2

 

 

 

관리 MySQL 사용자 생성

MySQL 5.7 이상을 실행하는 Ubuntu 시스템에서 루트 사용자는 기본적으로 auth_socket 인증 방법을 사용하도록 설정됩니다. 

auth_socket 플러그인은 로컬 호스트에서 Unix 소켓 파일을 통해 연결하는 사용자를 인증합니다. 즉, 암호를 제공하여 루트로 인증할 수 없습니다.

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

 

 

이전에 생성한 관리 사용자 로그인 자격 증명을 입력하고 이동을 클릭합니다.

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 5

 

 

로그인하면 다음과 같은 phpMyAdmin 대시보드가 표시됩니다.

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 6

 

 

 

phpMyAdmin 보호

보안 계층을 추가하려면 기본 인증을 설정하여 phpMyAdmin 디렉토리를 암호로 보호합니다.

먼저 Apache 패키지와 함께 제공되는 htpasswd 도구를 사용하여 사용자와 암호 파일을 만들 것입니다. .htpasswd 파일은 /etc/phpmyadmin 디렉토리에 저장됩니다.

sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin

 

 

이 예에서는 padmin이라는 사용자를 만듭니다. 원하는 사용자 이름을 선택할 수 있습니다. 관리 MySQL 사용자와 동일할 필요는 없습니다.

위 명령은 사용자의 암호를 입력하고 확인하라는 메시지를 표시합니다.

New password:
Re-type new password:
Adding password for user padmin

 

 

사용자를 추가하려는 경우 -c 플래그 없이 동일한 명령을 사용할 수 있습니다.

sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2

 

 

다음 단계는 phpMyAdmin 디렉토리를 암호로 보호하고 .htpasswd 파일을 사용하도록 Apache를 구성하는 것입니다.

이렇게 하려면 phpMyAdmin 설치 중에 자동으로 생성된 phpmyAdmin.conf 파일을 엽니다.

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

 

 

그리고 노란색으로 강조 표시된 다음 줄을 편집/삽입합니다.

# /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

 

 

Ubuntu 18.04 Apache : phpMyAdmin 설치하는 방법, 예제, 명령어 7

 

 

기본 인증을 입력하면 MySQL 관리 사용자 로그인 자격 증명을 입력해야 하는 phpMyAdmin 로그인 페이지로 이동합니다.

/phpmyadmin 별칭을 보다 독특하고 안전한 것으로 변경하는 것도 좋습니다.

반응형