서버 운영/APM 서버 구축

우분투 20.04에서 phpMyAdmin 설치 01 - 저장소 설치

씨실과 날실 2021. 2. 20. 09:00

안녕하세요. 씨실입니다.

과거 우분투 18.04를 주 연재 환경으로 사용할 때 phpMyAdmin를 설치하는 방법에 대해 다룬 적이 있습니다.

과거 글에서 설명한 방법은 이 글이 공개된 이 시점에서도 유효합니다.

위 내용을 보다 간결히 손을 보아 다시 적습니다.

 

MariaDB 인증 방식 확인 및 수정

 

 

 

패키지 전체 업그레이드

study@study-VirtualBox:~$ sudo apt update
study@study-VirtualBox:~$ sudo apt upgrade

시스템 내 패키지들을 저장소의 최신 버전들로 업그레이드합니다.

 

 

phpMyAdmin 설치 전 설치 권장 패키지 설치

study@study-VirtualBox:~$ sudo apt install php-curl php-gd php-zip php-mcrypt

 

study@study-VirtualBox:~$ sudo apt install php-curl php-gd php-zip
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 php-gd는 이미 최신 버전입니다 (2:7.4+75).
패키지 php-zip는 이미 최신 버전입니다 (2:7.4+75).
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  libllvm10 linux-headers-5.4.0-47 linux-headers-5.4.0-47-generic
  linux-headers-5.4.0-48 linux-headers-5.4.0-48-generic linux-headers-5.4.0-52
  linux-headers-5.4.0-52-generic linux-image-5.4.0-47-generic
  linux-image-5.4.0-48-generic linux-image-5.4.0-52-generic
  linux-modules-5.4.0-47-generic linux-modules-5.4.0-48-generic
  linux-modules-5.4.0-52-generic linux-modules-extra-5.4.0-47-generic
  linux-modules-extra-5.4.0-48-generic linux-modules-extra-5.4.0-52-generic
'sudo apt autoremove'를 이용하여 제거하십시오.
다음의 추가 패키지가 설치될 것입니다 :
  php7.4-curl
다음 새 패키지를 설치할 것입니다:
  php-curl php7.4-curl
0개 업그레이드, 2개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
33.0 k바이트 아카이브를 받아야 합니다.
이 작업 후 148 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
받기:1 http://mirror.kakao.com/ubuntu focal-updates/main amd64 php7.4-curl amd64 7.4.3-4ubuntu2.4 [31.0 kB]
받기:2 http://mirror.kakao.com/ubuntu focal/main amd64 php-curl all 2:7.4+75 [2,000 B]
내려받기 33.0 k바이트, 소요시간 0초 (442 k바이트/초)
Selecting previously unselected package php7.4-curl.
(데이터베이스 읽는중 ...현재 316168개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../php7.4-curl_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-curl (7.4.3-4ubuntu2.4) ...
Selecting previously unselected package php-curl.
Preparing to unpack .../php-curl_2%3a7.4+75_all.deb ...
Unpacking php-curl (2:7.4+75) ...
php7.4-curl (7.4.3-4ubuntu2.4) 설정하는 중입니다 ...

Creating config file /etc/php/7.4/mods-available/curl.ini with new version
php-curl (2:7.4+75) 설정하는 중입니다 ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.4) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.4) ...
study@study-VirtualBox:~$

 

phpMyAdmin 설치

study@study-VirtualBox:~$ sudo apt install phpmyadmin

위 명령을 실행하여 저장소에 등록되어 있는 phpMyAdmin 패키지를 설치해줍니다.

 

study@study-VirtualBox:~$ sudo apt install phpmyadmin
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  libllvm10 linux-headers-5.4.0-47 linux-headers-5.4.0-47-generic
  linux-headers-5.4.0-48 linux-headers-5.4.0-48-generic linux-headers-5.4.0-52
  linux-headers-5.4.0-52-generic linux-image-5.4.0-47-generic
  linux-image-5.4.0-48-generic linux-image-5.4.0-52-generic
  linux-modules-5.4.0-47-generic linux-modules-5.4.0-48-generic
  linux-modules-5.4.0-52-generic linux-modules-extra-5.4.0-47-generic
  linux-modules-extra-5.4.0-48-generic linux-modules-extra-5.4.0-52-generic
'sudo apt autoremove'를 이용하여 제거하십시오.
다음의 추가 패키지가 설치될 것입니다 :
  dbconfig-common dbconfig-mysql icc-profiles-free javascript-common
  libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore
  php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile
  php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container
  php-psr-log php-symfony-cache php-symfony-cache-contracts
  php-symfony-expression-language php-symfony-service-contracts
  php-symfony-var-exporter php-tcpdf php-twig php-twig-extensions
제안하는 패키지:
  php-dbase php-libsodium php-mcrypt php-gmp
  php-symfony-service-implementation php-twig-doc php-symfony-translation
  php-recode php-gd2 php-pragmarx-google2fa php-bacon-qr-code
  php-samyoul-u2f-php-server
추천하는 패키지:
  php-mcrypt
다음 새 패키지를 설치할 것입니다:
  dbconfig-common dbconfig-mysql icc-profiles-free javascript-common
  libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore
  php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile
  php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container
  php-psr-log php-symfony-cache php-symfony-cache-contracts
  php-symfony-expression-language php-symfony-service-contracts
  php-symfony-var-exporter php-tcpdf php-twig php-twig-extensions phpmyadmin
0개 업그레이드, 25개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
15.1 M바이트 아카이브를 받아야 합니다.
이 작업 후 68.5 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y

추가 패키지는 phpMyAdmin을 설치, 사용하기 위해선 어차피 반드시 설치되어야 하는 것이므로 굳이 크게 신경쓸 필요는 없지만 그외 제안 패키지와 추천 패키지는 사용자가 따로 설치해주어야 합니다.

이들 제안 패키지와 추천 패키지는 phpMyAdmin을 사용하는데 필수적인 패키지들은 아니지만 확장된 기능을 사용하기 위해서 필요합니다.

그러나 이러한 패키지들은 정말 고급 기능에 사용되므로 단순히 DB를 간단히 조작하는 수준이라면 굳이 추가로 설치할 필요는 없습니다.

study@study-VirtualBox:~$ sudo apt install php-mcrypt
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
php-mcrypt 패키지를 사용할 수 없습니다.  하지만 다른 패키지가 참조하고 있습니다.
해당 패키지가 누락되었거나 지워졌다는 뜻입니다. 아니면 또 다른 곳에서
패키지를 받아와야 하는 경우일 수도 있습니다.

E: 'php-mcrypt' 패키지는 설치할 수 있는 후보가 없습니다
study@study-VirtualBox:~$ 

apt 패키지 관리자는 phpmyadmin을 설치할 때 php-mcrypt도 같이 설치 할 것을 추천하고 있습니다만 정작 설치 명령을 실해아면 위와 같은 오류를 출력합니다.

그래서 사전 설치 패키지 목록에서 제외하였습니다.

 

설칙 진행되느 과정 중 사용하는 웹서버를 선택하는 창이 뜹니다.

우리는 일반적으로 Apache2를 사용할 것이므로 apache2를 선택하고 확인 버튼을 눌러주면 됩니다.

 

이때 웹서버는 스페이스바로 선택하고 Tab 키를 눌로 확인 버튼으로 이동한 다음 엔터키를 눌러 다음 단계로 진행하면 됩니다.

 

Apache2와 함께 널리 쓰이는 웹서버는 NgineX는 위 그림에서 보면 알 수 있듯 자동 구성을 지원하지 않습니다.

이땐 웹서버를 선택하지 않고 확인 버튼을 눌러 설치 과정을 진행합니다.

 

phpMyAdmin 설치 후 NgineX에서 phpMyAdmin을 사용하기 위해서는 아래와 같이 심볼릭 링크를 걸어주어야 합니다. 

$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

 위 명령은 Ubuntu, NgineX, phpMyAdmin를 기본 설치했을 때 사용가능한 기본값입니다.

시스템 및 패키지 설치 환경에 따라 웹문서 루트 디렉터리와 NgineX, phpMyAdmin 설치 디렉터리가 다른 경우 그에 맞춰 다르게 설정해주어야 합니다.

 

확인버튼을 누르면 설치 과정이 진행되다가 아래와 같은 창이 뜹니다.

 

만약 고급 DB 관리자로서 phpMyAdmin 데이터베이스를 직접 설정하고자 하는 경우, 또는 이미 phpMyAdmin 데이터베이스를 구성한 경우 위 그림처럼 아니오를 선택하고 진행해줍니다.

 

phpMyAdmin가 곧 설치 완료됩니다.

우분투 20.04에서 저장소를 통해 설치하는 경우 설치 직후라도 웹브라우저에서 phpMyAdmin 접속 주소에 접속하면 바로 정상적으로 접속이 가능합니다.

 

그러나 18.04 이전 버전의 우분투에서 저장소를 통해 설치하는 경우 phpMyAdmin를 바로 사용할 수 없었습니다. 아예 접속도 할 수 없었습니다.

phpmyadmin에 접속하여 사용하려면 apache2.conf 파일에 다음과 같은 문구를 적어주어야 했습니다.

#Include phpMyAdmin
Include /etc/phpmyadmin/apache.conf

이에 대한 보다 자세한 내용은 아래링크 글을 참고하시기 바랍니다.

설치가 완료되고 apache2.conf 파일에 Include 구문을 추가해준 다음 아파치 서버를 재시작해줍니다.

study@study-VirtualBox:~$ sudo service apache2 restart

 

웹브라우저를 실행하여 주소창에 아래와 같이 입력하여 접속합니다.

http://도메인 주소/phpmyadmin

http://localhost/phpmyadmin

 

위 화면에서 MariaDB 또는 MySQL의 사용자명과 암호를 입력해줍니다.

 

만약 암호가 틀리면  

#1045 - Access denied for user 'root'@'localhost' (using password: YES)mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)

위와 같은 오류 메시지가 출력됩니다. 위 인용 문구는 MySQL 또는 MariaDB 사용시 자주 보게되는 오류 문구입니다. #1045는 입력된 로그인 정보 주로 입력한 암호가 틀려 DB에 접속할 수 없을 때 나오는 에러코드입니다.

 

 

정상적으로 로그인되면 위와 같은 그림을 볼 수 있습니다.

 

그런데 맨 하단에 빨간색 바탕의 둥근 모서리 상자에 오류 메시지가 표시되는 것을 볼 수 있습니다.

 

phpMyAdmin 설정 스토리지가 완전히 설정되지 않아, 일부 확장 기능들이 비활성화된 상태입니다. 원인을 확인하려면 여기를 클릭하세요. 대신 데이터베이스 작업 탭을 사용하여 설정할 수도 있습니다.

 

위와 같은 문구가 표시되는데요. 여기 링크를 클릭해줍니다. 그러면 아래와 같은 화면을 볼 수 있습니다.

 

 

Configuration of pmadb... not OK
일반 릴레이션 기능 사용 불가
Create a database named 'phpmyadmin' and setup the phpMyAdmin Configuration storage there.

 

위와 같은 문구를 볼 수 있습니다.

Create 링크를 클릭해줍니다.

 

그럼 위와 같은 화면이 나오는데요. 각 항목마다 OK가 나오고 좌측 상단에 phpmyadmin이라는 이름의 DB가 생성되면 문제는 해결된 것입니다.

 

작업을 마치고 좌상단의 집 모양 아이콘 우측에 나가는 모양 아이콘을 눌러주세요. 그럼 로그아웃이 되고 로그인 화면으로 돌아오게 됩니다.

 

 


 

 

DB를 관리하는 것에 익숙지 않은 분들은 예를 눌러 설치 과정을 진행합니다.

그러면 dbconfig-common을 통해 아래와 같이 진행하게 됩니다.

보면 알 수 있듯이 사용자는 설정값을 지정해주는 것만으로 손쉽게 설정할 수 있습니다.

 

초심자의 경우 이 방법을 권장합니다. 

 

위 그림에서 말하는 phpmyadmin에서 사용할 MySQL 응용 프로그램의 암호는 phpMyAdmin이 내부적으로 MySQL 또는 MariaDB와 통신하기 위해 사용하는 암호로, 비워두먼 임의값의 암호가 자동 생성됩니다.

 

암호를 비워두지 않고 입력하면 입력했던 암호를 다시금 확인하는 절차를 거치게 됩니다.

 

데이터베이스 관리자 계정 암호를 입려개줍니다.

 

이후는 자동으로 설치가 진행됩니다.

이렇게 설치한 경우 위에서 봤던 오류 메시지가 나오지 않고 따라서 이후 설정 작업도 할 필요가 없습니다.

 


apt를 통한 각종 패키지를 설치할 때 많은 이들이 PPA를 이용하여 설치하는 경우가 많습니다. 이유는 PPA를 이용하는 것이 우분투 등 리눅스의 기본 패키지 저장소 또는 그 미러 저장소를 통해 설치하는 것보다 최신 버전의 패키지를 설치할 수 있기 때문입니다.

 

phpMyAdmin도 마찬가지였는데요. 공개되어 있던 phpMyAdmin PPA가 현재는 폐쇄되었습니다. 현재 웹상의 많은 곳에서 phpMyAdminPPA 등록 방법으로 아래 명령어를 안내하고 있습니다.

study@study-VirtualBox:~$ sudo add-apt-repository ppa:nijel/phpmyadmin

그러나 위 명령은 이제 사용할 수 없습니다. 해당 PPA의 공식 주소는 아래와 같습니다.

방문해보시면 아시겠지만 해당 PPA 계정이 폐쇄되어 찾을 수 없음을 알 수 있습니다. 즉 웹상에 널리 퍼져 있는 이 PPA는 이제 사용할 수 없습니다.

 

만약 위 PPA 등록 명령을 실행하면 아래와 같이 출력됩니다.

study@study-VirtualBox:~$ sudo add-apt-repository ppa:nijel/phpmyadmin
[sudo] study의 암호:
Cannot add PPA: 'ppa:~nijel/ubuntu/phpmyadmin'.
The user named '~nijel' has no PPA named 'ubuntu/phpmyadmin'
Please choose from the following available PPAs: