서버 운영/APM 서버 구축

phpMyAdmin 수동 설치 01 - 일반 설치

씨실과 날실 2019. 7. 1. 09:00

우리는 phpMyAdmin에 대하여 APT 패키지 관리자를 통한 설치와 업그레이드 방법에 대하여 알아본 적이 있습니다. 그러나 자신의 시스템 환경에 따라, 혹은 자신의 기호에 맞춰 개별적으로 설치하기 위해서는 수동으로 설치해야 합니다. 이번에는 그 수동 설치 방법에 대해 알아보도록 하겠습니다.

[작업환경]

가상머신 : VirtualBox 6.0.8

OS : Ubuntu 18.04.2

Apache2 : Apache/2.4.29 (Ubuntu)

PHP7 : PHP 7.2.19-0ubuntu0.18.04.1

MariaDB : mysql  Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

phpMyAdmin : phpMyAdmin 4.9.0.1

APT 패키지 관리자를 통해 설치한 phpMyAdmin 제거

아파치 환경설정 파일에서 phpMyAdmin 인클루드 구문 주석 처리

/etc/apache2/apache2.conf 파일에서 아래 구문을 찾습니다.

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


Include /etc/phpmyadmin/apache.conf 구문 앞에 #을 붙여 해당 구문을 주석 처리 해줍니다.

아파치 재시작

sudo service apache2 restart
sudo systemctl restart apache2.service


터미널에 위 두 명령어 중 하나를 선택해 아파치를 재시작해줍니다.

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

APT 패키지 관리자를 통해 설치한 기존 phpMyAdmin 제거

study@study-VirtualBox:~$ sudo apt purge phpmyadmin
위 명령어를 실행하여 phpMyAdmin을 제거해줍니다.

참고로 패키지를 제거하는데는 remove와 purge 이 두 명령어가 있는데 remove는 환경 설정 파일을 남기는 반면에 purge는 환경 설정 파일까지 모두 제거합니다.

study@study-VirtualBox:~$ sudo apt purge phpmyadmin
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  dbconfig-common dbconfig-mysql javascript-common libjs-jquery
  libjs-sphinxdoc libjs-underscore php-bz2 php-mysql php-php-gettext
  php-phpseclib php-tcpdf php7.2-bz2 php7.2-mysql
Use 'sudo apt autoremove' to remove them.
다음 패키지를 지울 것입니다:
  phpmyadmin*
0개 업그레이드, 0개 새로 설치, 1개 제거 및 1개 업그레이드 안 함.
이 작업 후 25.0 M바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] y
(데이터베이스 읽는중 ...현재 186056개의 파일과 디렉터리가 설치되어 있습니다.)
Removing phpmyadmin (4:4.6.6-5) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
(데이터베이스 읽는중 ...현재 184424개의 파일과 디렉터리가 설치되어 있습니다.)
Purging configuration files for phpmyadmin (4:4.6.6-5) ...
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/doc/html' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/themes/pmahomme/jquery' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/themes/pmahomme/img' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/themes/pmahomme/css' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/themes/original/jquery' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/themes/original/img' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/test' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/table/structure' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/table/search' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/table/relation' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/table/gis_visualization' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/table/chart' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/server/variables' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/server/plugins' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/server/engines' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/server/databases' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/server/collations' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/server/binlog' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/privileges' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/navigation' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/list' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/javascript' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/error' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/database/structure' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/database/designer' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/components' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/templates/columns_definitions' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/sql' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/setup/lib' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/locale' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/libraries/dbi' not empty so not removed
dpkg: 경고: while removing phpmyadmin, directory '/usr/share/phpmyadmin/js' not empty so not removed
study@study-VirtualBox:~$ 

purge 명령을 실행하면 위와 같이 나타납니다. 위 내용에서 우리는 두 가지를 알 수 있습니다.

첫 번째로, 불필요한 패키지가 생기므로 이를 지우기 위해서는 autoremove 명령을 실행해야 한다.

두 번째로, /usr/share/phpmyadmin/와 그 하위 디렉토리들이 완전히 지워지지는 않았으므로 따로 지워주어야 한다.

/usr/share/phpmyadmin 디렉토리 제거

study@study-VirtualBox:~$ sudo rm -rf /usr/share/phpmyadmin

sudo apt autoremove 명령 실행하지 말것

study@study-VirtualBox:~$ sudo apt autoremove
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 패키지를 지울 것입니다:
  dbconfig-common dbconfig-mysql javascript-common libjs-jquery
  libjs-sphinxdoc libjs-underscore php-bz2 php-mysql php-php-gettext
  php-phpseclib php-tcpdf php7.2-bz2 php7.2-mysql
0개 업그레이드, 0개 새로 설치, 13개 제거 및 1개 업그레이드 안 함.
이 작업 후 24.6 M바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] n 

위 패키지들 중에서는 phpMyAdmin 실행에 필요한 패키지들도 있습니다. 따라서 가능하면 위 명령은 실행하지 마시기 바라며 만약 phpMyAdmin 실행에 필요한 패키지만 남기고 그외 패키지들은 제거하고 싶으신 분들은 아래에 따로 적은 필요 패키지 목록을 제외한 패키지들만을  remove나 purge 명령을 이용해 삭제하시기 바랍니다.

phpMyAdmin 실행에 필요한 패키지 목록은 다음과 같습니다.

phpmyadmin
dbconfig-common dbconfig-mysql javascript-common
libjs-jquery libjs-sphinxdoc libjs-underscore libzip4
php-bz2 php-curl php-gd php-mbstring php-mysql php-pear php-php-gettext php-phpseclib php-tcpdfphp-xml php-zip
php7.2-bz2 php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip

phpMyAdmin 수동 설치

phpMyAdmin 다운로드

study@study-VirtualBox:~$ sudo wget -P ~/다운로드 https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

다운 받은 phpMyAdmin 압축 파일 웹루트 폴더에 풀기

study@study-VirtualBox:~$ sudo tar -xzf /home/study/다운로드/phpMyAdmin-4.9.0.1-all-languages.tar.gz -C /var/www/html 

phpMyAdmin 디렉토리명 변경

study@study-VirtualBox:~$ cd /var/www/html
study@study-VirtualBox:/var/www/html$ ls
index.html  nextcloud  phpMyAdmin-4.9.0.1-all-languages  phpinfo.php  w  wp
study@study-VirtualBox:/var/www/html$ sudo mv phpMyAdmin-4.9.0.1-all-languages phpmyadmin 
study@study-VirtualBox:/var/www/html$ ls -p
index.html  nextcloud/  phpinfo.php  phpmyadmin/  w/  wp/
study@study-VirtualBox:/var/www/html$

phpMyAdmin 환경 파일 생성

웹브라우저에서 http://localhost/phpmyadmin/setup에 접속합니다.

위 화면이 나옵니다. 서버 환경 설정을 생성해주어야 합니다. 새 서버 버튼을 눌러줍니다.

실제 서비스용 서버가 아니라면 아무것도 건드리지 않고 그냥 적용 버튼만 눌러도 상관없습니다. 그게 아니라면 서버 환경에 맞춰 설정해주셔야 합니다.

실제 서비스용 서버가 아니라면 아무것도 건드리지 않고 그냥 적용 버튼만 눌러도 상관없습니다. 그게 아니라면 서버 환경에 맞춰 설정해주셔야 합니다.

실제 서비스용 서버가 아니라면 아무것도 건드리지 않고 그냥 적용 버튼만 눌러도 상관없습니다. 그게 아니라면 서버 환경에 맞춰 설정해주셔야 합니다.

실제 서비스용 서버가 아니라면 아무것도 건드리지 않고 그냥 적용 버튼만 눌러도 상관없습니다. 그게 아니라면 서버 환경에 맞춰 설정해주셔야 합니다.

실제 서비스용 서버가 아니라면 아무것도 건드리지 않고 그냥 적용 버튼만 눌러도 상관없습니다. 그게 아니라면 서버 환경에 맞춰 설정해주셔야 합니다.

설정을 끝내고 적용 버튼을 누르면 위 그림처럼 서버가 등록됩니다.

phpMyAdmin의 기본 언어와 기본 서버 등을 설정하고 다운로드 버튼을 눌러줍니다.

phpMyAdmin의 환경 설정 파일은 config.inc.php 파일입니다. 다운로드 창에서 파일 저장에 체크를 하고 확인 버튼을 눌러줍니다.

웹브라우저의 기본 저장 폴더는 우분투의 경우 /home/사용자명/다운로드 입니다

study@study-VirtualBox:/var/www/html$ cd ~/다운로드
study@study-VirtualBox:~/다운로드$ sudo cp config.inc.php /var/www/html/phpmyadmin

위 명령을 사용하여 config.inc.php 파일을 phpmyadmin 디렉토리 안에 복사해줍니다.

그후 http://localhost/phpmyadmin/에 접속하여 로그인해줍시다.

오류 수정

로그인하면 하단에 아래와 같은 오류가 나옵니다.

The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.

phpmyadmin 하위 디렉토리 중 tmp라는 디렉토리가 없어서 나타나는 오류입니다.

해결 방법은 두가지 입니다.

해결법 1

config.inc.php 파일을 열어 아래 구문을 추가해줍니다.

$cfg['TempDir'] = '/tmp';

해결법 2

해당 디렉토리를 생성해주고 소유권 설정을 해주시면 됩니다.

study@study-VirtualBox:~/다운로드$ cd /var/www/html/phpmyadmin study@study-VirtualBox:/var/www/html/phpmyadmin$ sudo mkdir tmp study@study-VirtualBox:/var/www/html/phpmyadmin$ ls -l | grep tmp drwxr-xr-x 2 root root 4096 6월 27 17:31 tmp study@study-VirtualBox:/var/www/html/phpmyadmin$ sudo chmid 777 tmp study@study-VirtualBox:/var/www/html/phpmyadmin$ ls -l | grep tmp drwxrwxrwx 2 root root 4096 6월 27 17:31 tmp study@study-VirtualBox:/var/www/html/phpmyadmin$

위 실행 명령어와 응답들을 해석하자면 아래와 같습니다.

$ cd /var/www/html/phpmyadmin

작업 위치를 /var/www/html/phpmyadmin로 이동

 

$ sudo mkdir tmp

현재 작업 위치 디렉토리에 tmp라는 하위 디렉토리 생성


$ ls -l | grep tmp

현재 작업 위치의 하위 디렉토리 및 파일의 목록과 상세 정보를 출력하되 출력 대상은 이름이 tmp로 시작하는 것들입니다.


drwxr-xr-x  2 root root  4096  6월 27 17:31 tmp

형식 / 퍼미션(권한) / 링크 수 / 소유자 / 그룹  / 용량 / 최종 수정 일시 / 이름


$ sudo chmod 777 tmp

tmp의 퍼미션을 777(소유자, 그룹원, 기타 모든 계정에게 읽기, 쓰기, 실행의 모든 권한을 부여)