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 적용, 서브도메인 설정 단계로 이어지게 되어 도메인이 필요 합니다.
아래 포스트 글을 참조하시면 됩니다.
이어지는 다음 글
Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io
config.inc.php 설정까지하고 phpmyadmin 접속하면 아래와 같은 메세지가 뜨네요 ㅜㅜ
yum 으로 php-xml 까지 깔고 리스타트 해도 안됩니다.. 뭔가 다른게 있을까요?
php7.4버전에 phpMyAdmin 5.1.1 깔았습니다.
안녕하세요
혹시 php 설치를 yum과 같은 패키지로 설치 하셨나요 아니면 컴파일 설치를 하셨나요?
리눅스에 APM(Apache + PHP + MySQL) 설치 및 연동
이 포스트를 보고 yum으로 깔았습니다.
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
요방법으로 설치하였습니다
1. 혹시 이와 같이 composer를 이용하셨나요?
create-project phpmyadmin/phpmyadmin
2. 그 다음 phpmyadimn 디렉토리에서 phpinfo.php 파일을 생성 하고 아래와 같은 내용으로 파일을 작성해보신 후에 브라우저에서 실행해보세요
<?php phpinfo(); ?>
http://주소/phpinfo.php
그러신 후 설치된 경로와 php 버전 등을 확인 해보세요
3. ssh 터미널에서 아래와 같이 패키지 버전을 한번 확인 해보세요
rpm -qa | grep php
2번에서 확인 되는 php 버전과 rpm 으로 조회하는 php-xml 패키지가 버전이 맞느지 확인 해봐주세요
감사합니다.
1번은 어떤 내용인지 제가 잘 이해를 못했습니다 어떻게 이용하면 될까요?
2번은 이전에 올려주신 포스트대로 만들어서 php7.4로 잘나옵니다.
3번으로 확인해보니 php-xml로 설치한것이 버전이 안맞아 php74-php-xml로 재설치후 시스템 재부팅하니 화면올라옵니다 ㅎㅎ 감사합니다.
네 웹에서 사용중인 php 와 php-xml이 맞지 않았던것 같네요
잘되셨다니 다행이십니다.
안녕하세요. 리눅스에 APM(Apache + PHP + MySQL) 설치 및 연동
이 포스트를 보고 yum으로 깔았습니다.
IP주소/phpmyadmin 접속 시, 로그인 화면이 아니라 index.php 파일이 다운로드가 됩니다. 문제가 무엇인지 감이 안와, 도움을 요청드립니다..
안녕하세요
일반적으로 APM로 연동하게 되면 PHP 파일을 처리하고 웹 서버에서 해당 내용을 렌더링하여 웹 브라우저에 전송합니다.
그런데 "index.php" 파일을 다운로드한다는 것은 웹 서버가 PHP를 처리하지 못하고 해당 파일을 다운로드하도록 브라우저에게 요청했다는 것을 의미한다고 볼 수 있을 것 같습니다.
보통의 경우 이런 문제는 일반적으로 PHP 제대로 처리되지 않는 경우 발생합니다.
IP주소/phpmyadmin 라는 것을 봤을때 root디렉토리 아래 서브디렉토리로 서빙하는 것으로 예상됩니다. 해당 디렉토리(phpmyadmin) 아래 phpinfo 파일을 만들어서 php가 정상적으로 로드가 되는지 먼저 확인해보시는게 좋을것 같습니다.
phpinfo 다음글의 아래 글에서 "phpinfo 파일 생성" 을 참조하시면 됩니다.
우분투(Ubuntu) APM - Apache PHP MySQL 구성 및 설정 | Hoing
(댓글에 php코드가 삽입이 어렵네요)
감사합니다.