웹 기반 MySQL 관리툴 - PHPMyAdmin 설치 및 설정

Share

Last Updated on 4월 9, 2022 by Jade(정현호)

웹 기반의 MySQL 관리툴

phpMyAdmin 은 PHP로 개발 된 오픈소스이고, 웹 기반의 MySQL 관리 툴 입니다.




사용하는 php 버전에 따라서 phpMyAdmin을 선택하셔서 설치하시면 됩니다.



1.31 Which PHP versions does phpMyAdmin support?

Since release 4.5, phpMyAdmin supports only PHP 5.5 and newer. Since release 4.1
phpMyAdmin supports only PHP 5.3 and newer. For PHP 5.2 you can use 4.0.x releases.

PHP 7 is supported since phpMyAdmin 4.6, PHP 7.1 is supported since 4.6.5, PHP 7.2 is supported since 4.7.4.

HHVM is supported up to phpMyAdmin 4.8.
Since release 5.0, phpMyAdmin supports only PHP 7.1 and newer.


참조) https://docs.phpmyadmin.net/en/latest/faq.html



phpMyAdmin 5.x 대 버전을 사용하기 위해서는 PHP 7.1 이상의 버전을 사용 해야 합니다.
PHP 5.x대 를 사용하신다면 4.x 버전을 사용 하시면 됩니다.

버전의 업데이트는 자주 이루어 지는 편이고 수정하는 시점 기준으로 2020/10/15일에 출시된 버전은 아래와 같습니다.


2020/10/15 - phpMyAdmin 4.9.7 and 5.0.4 are released

= 5.0.4
https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip

= 4.9.7
https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.zip


참조) https://www.phpmyadmin.net/news/



처음 작성시에는 PHP 5.6사용으로 phpMyAdmin 을 4.9.5 버전으로 설치를 하였으나 현재 PHP 7.4 버전을 사용함에 따라 5.0.4 버전으로 사용중입니다.
phpMyAdmin 5.x 와 4.9.x 버전간의 설치나 설정은 동일 합니다.


다운로드 및 설치

1)  Apache 및 PHP 소스 컴파일 설치 환경에서 위치 입니다

YUM으로 APM 으로 설치한 환경이거나 Ubuntu에서 apt 로 LEMP 구성이라면 바로 아래 쪽을 참조 하시면 됩니다.

설치위치는 /usr/local/ 아래에 설치하는 것으로 진행할 것입니다


# 버전별 파일 경로
= 5.0.4
https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip

= 4.9.7
https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.zip



[root]# cd /usr/local
[root]# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip 

[root]# unzip phpMyAdmin-5.0.4-all-languages.zip
[root]# chown -R apache:apache  phpMyAdmin-5.0.4-all-languages
[root]# ln -s phpMyAdmin-5.0.4-all-languages phpmyadmin



2) YUM으로 APM(Apache+PHP+MySQL) 환경일 경우 경로입니다

[root]# cd /var/www/html
[root]# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip

[root]# unzip phpMyAdmin-5.0.4-all-languages.zip
[root]# chown -R apache:apache phpMyAdmin-5.0.4-all-languages
[root]# ln -s phpMyAdmin-5.0.4-all-languages phpmyadmin



3) Ubuntu 에서 apt 로 Nginx + PHP-FPM + MariaDB 설치 환경일 경우 경로 입니다.

[root]# cd /usr/share/nginx/html
[root]# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip

[root]# unzip phpMyAdmin-5.0.4-all-languages.zip
[root]# chown -R nginx:nginx phpMyAdmin-5.0.4-all-languages
[root]# ln -s phpMyAdmin-5.0.4-all-languages phpmyadmin



* 심볼릭 링크를 사용한 이유는 apache나 nginx 에서 바라보는 경로를 단일화 하기 위해서 입니다.
웹서버에서는 항상 /usr/local/phpmyadmin 을 바라 보고 있는 상태에서 버전 변경시 링크를 새로운 버전의 디렉토리로 변경 해주는 형태로 저는 사용 중 입니다
(* 꼭 이렇게 하지 않아도 됩니다)



[참고] 버전을 변경해서 재설치 하시는 경우 기존의 config.inc.php 파일을 그대로 복사하셔서 사용하시면 바로 사용 하실 수 있습니다


config.inc.php 설정

설치 후 몇가지 설정 할 내역이 있습니다.

먼저 sample 템플릿을 파일을 을 복사하여 config 파일을 생성합니다.
[root]# cd phpmyadmin
[root]# cp -rp config.sample.inc.php  config.inc.php



# 파일편집

[root]# vi config.inc.php


# 기본적으로 설정할 Server 파라미터는 아래와 같습니다.

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'mysql DB 서버IP or localhost';
$cfg['Servers'][$i]['port']= '3306';
    <-- port가 3306 이 아닐경우
$cfg['Servers'][$i]['compress'] = true;
    <-- 변경은 선택사항
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['TempDir']='/tmp';



여기 까지 설정하고 apache 를 에서 directory 나 virtualhost 를 설정하여 확인해 보면 아래와 같이 접속이 되시는것을 확인 할수 있습니다


[참고1] Apache 에서 VirtualHost  사용시

<VirtualHost 123.123.123.123:80>
    ServerAdmin admin@phpmyadmin.abc.kr
    DocumentRoot "/websource/phpmyadmin"
    ServerName phpmyadmin.abc.kr
    ErrorLog "logs/phpmyadmin.abc.kr-error_log"
    CustomLog "logs/phpmyadmin.abc.kr-access_log"
<Directory "/websource/phpmyadmin">
        AllowOverride ALL
        Options FollowSymLinks MultiViews
        DirectoryIndex index.php index.jsp index.html index.htm
        Require all granted

<IfModule mod_php5.c>
php_value suhosin.request.max_vars 2048
php_value suhosin.request.max_value_length 1444444
php_value suhosin.request.max_array_index_length 256
php_value suhosin.request.max_totalname_length 8192
php_value suhosin.post.max_vars 2048
php_value suhosin.post.max_array_index_length 256
php_value suhosin.post.max_totalname_length 8192
php_value suhosin.post.max_value_length 1444444
php_flag suhosin.sql.bailout_on_error Off
php_value suhosin.log.file 0
php_value suhosin.log.phpscript 0
php_flag suhosin.log.phpscript.is_safe Off
php_value suhosin.log.sapi 0
php_value suhosin.log.script 0
php_flag suhosin.log.use-x-forwarded-for Off
php_flag suhosin.cookie.encrypt ON
php_flag suhosin.executor.disable_emodifier ON
</IfModule>
</Directory>
</VirtualHost>



<IfModule mod_php5.c>
~
</IfModule>
=> 위에서 보라색으로 하이라이트 된 부분은 suhosin 사용시 권장되는 값입니다.
=> php Suhosin 을 설치 하지 않았을 경우 무관한 내용입니다(설정 안해도 됩니다.)



[*] yum으로 APM 설치하였을 경우나 / Ubuntu 에서 apt 로 Nginx+PHP+MariaDB 구성 일 경우 바로 접속이 가능합니다.

YUM / APM 환경일 경우 : /var/www/html 에 압축 해제

apt  / Nginx+PHP+MariaDB 환경일 경우 : /usr/share/nginx/html  에 압축 해제


브라우저에서 다음과 같이 입력하여 접속을 합니다.  ->  http://IP주소/phpmyadmin


Post Action

몇 가지 권고되는 설정 적용 및 Warning 메세지를 없애기 위해서 작업을 해야 합니다.




1) blowfish_secret

암호화 문자열(blowfish_secret) 내용을 config.inc.php 파일에 입력해 줘야 합니다.
phpmyadmin 을 위한 blowfish password 을 랜덤하게 생성 해주는 사이트를 이용하여 문자열을 입력하시면 됩니다.


아래 파란색 네모안의 내용을 복사 해서 사용하시면 됩니다.

패스워드를 다르게 다시 생성 하려면 페이지를 refresh 하시거나 빨간색 화살표가 가리키는 링크를 클릭하면 페이지가 refresh 되면서 새로운 패스워드 문자열이 제공 됩니다



위에서 생성한 패스워드 문자열열 아래 부분에 넣어 줍니다.

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

to

$cfg['blowfish_secret'] = ' asfdasfsaf43#$vdf'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

 * 패스워드는 예시 입니다, 실제값이 아닙니다.



2. /tmp/ 에러 발생시

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

위의 warning 이 발생의 경우 

config.inc.php 를 열어서     $cfg['TempDir'] = '/tmp';         이내용을 추가 해 줍니다.






3. PHP 수호신( PHP Suhosin) 관련 설정 변경

$cfg['SuhosinDisableWarning']=true;
옵션은 권장되는 suhosin 옵션을 변경 해도 계속 warning 이 발생 되어 값을 true로 변경 하여 사용 하기로 했습니다.

** PHP Suhosin 설치한 환경일 경우에만 해당 하는 내용입니다.


# 최종적으로 아래와 같이 설정 하였습니다


$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '호스트명';
$cfg['Servers'][$i]['port']= '3306';
$cfg['Servers'][$i]['compress'] = true;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['TempDir'] = '/tmp';
$cfg['SuhosinDisableWarning']=true;




## pmadb 생성

여기까지 모두 설정 후 apache 를 재시작하여 접속 하면 아래와 같은 메세지를 볼수 있습니다.
DB상에 추가적으로 작업 내역이 있으며 화면상에 " 여기" 를 클릭하여 진행을 합니다.






Create  를 클릭 합니다.




다음과 같이 여러개의 항목이 모두 OK 가 나온다면 정상적으로 처리 된 것입니다.




여기까지 완료 되었으면 warning 이 더이상 확인 되지 않을 것입니다.




그리고 아래와 같이 정상적으로 사용이 가능할 것입니다.





[참고] APM 또는 LEMP 스택을 통해 웹 사이트 구성 연재와 관련된 글 입니다.

다음 단계로 도메인을 사용한 SSL ,reCAPCHA 적용, 서브도메인 설정 단계로 이어지게 되어 도메인이 필요 합니다.

아래 포스트 글을 참조하시면 됩니다.



이어지는 다음 글

 

 

 

8
0
글에 대한 당신의 생각을 기다립니다. 댓글 의견 주세요!x