서버를 운영하면서 phpMyAdmin의 필요성을 느낀적은 없었다. 하지만 혼자 사용하는 서버가 아니다보니 가끔이기는 하지만 다른 사용자들이 특정 db의 초기화나 db의 추가 생성 등의 작업을 요구할 때가 있다. 최근에는 phpMyAdmin의 설치를 요구한다.
구글링을 해보니 예전의 몇몇 버전에서는 보안이슈도 있었고 일부 웹호스팅 업체에서는 보안상의 이유로 서비스를 제공하지 않는 것으로 보인다. 대안으로 비슷한 류의 프로그램도 있는 듯 하다. 일단 아래와 같이 yum으로 설치했다.
프로그램의 설치 후 웹에서의 접근을 허용하도록 설정을 바꾸지 않으면 HTTP 403 에러가 발생한다. 아파치(apache)를 웹서버로 사용하고 있다면 /etc/httpd/conf.d의 phpMyAdmin.conf를 열어보자. 버전 2.4 이상을 사용중인 경우는 아래와 같이 Require all granted를 넣어서 전체 접근을 허용해야 한다. 혹 2.2버전대를 사용한다면 아래 블럭의 값을 Order allow, deny / Allow from all로 수정해주자. 물론 수정 후 서비스를 재시작 해야한다.
이제 사용중인 도메인 뒤에 /phpmyadmin을 덧붙여서 사용할 수 있다(mydomain/phpmyadmin). 이러한 접속 방식은 워낙 많이 알려져 있기에 살짝 이름을 바꿔주는 것도 좋은 방법인 것 같다. 위의 설정 파일의 상단을 보면 phpMyAdmin의 별칭(Alias)으로 phpmyadmin이 설정된 것을 볼 수 있다. 이부분을 mydb, webdb 등 편한 이름으로 바꾸어 사용하는 것을 추천한다. 그대로 사용했을 때에 로그파일(secure)에서 아래와 같은 로그를 발견하게 될지도 모른다.
일부러 phpmyadmin의 alias를 변경하지 않고 기본값을 사용해봤다. 그 로그는 아래와 같다. 귀찮더라도 Alias 뿐만 아니라 mysql(mariadb)의 기본 포트까지 변경하는 것이 좋을 것이다.
Jan 21 06:50:22 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:22 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:22 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:23 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:24 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:24 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:26 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:26 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:26 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:29 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:30 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 Jan 21 06:50:30 tki phpMyAdmin[15509]: user denied: root (mysql-denied) from 49.235.73.5 |
웹서버를 재시작하여 변경 사항을 적용시키자.
막상 설치를 마치고 로그인을 해보니 우측하단에 phpMyAdmin 공식 홈 링크가 보인다. 방문해보니 현재기준 가장 최신버전은 5.0.1, 안정화버전은 4.9.4인 듯 하다. 업그레이드 방법을 찾아서 그대로 따라해본다.
|
1. 서버가 아닌 내 pc에 phpMyAdmin-4.9.4-all-languages.tar.gz을 다운받아서 ftp로 서버에 업로드 한다. 2. 기존에 yum으로 설치한 phpMyAdmin의 디렉토리 이름을 phpMyAdmin-old로 변경한다. (설치 위치는 /usr/share) 3. 이제 압축파일을 /usr/share/phpMyAdmin에 풀어준다. (현재의 /usr/share에 *gz파일은 하나 밖에 없으므로 # tar -xvf *gz으로 풀어버린 다음에 mv명령으로 디렉토리 이름을 phpMyAdmin으로 바꿨다) 4. config.inc.php를 찾기 위해 #find -name config.inc.php를 돌렸다. /usr/share/phpMyAdmin-old/setup/frames에 있더라...) 이 녀석을 새로 압푹을 푼 디렉토리의 같은 위치에 복사했다. 5. 다시 mydomain/phpmyadmin(혹은 변경한 이름)에 접속해본다. 아래와 같이 나온다.
하나하나 오류를 없애보기로 한다.
- 이제 설정 파일은 암호화 문자열(blowfish_secret)을 필요로 합니다.
: 여기서 설정 파일은 phpMyAdmin이 설치된 홈디렉토리(/usr/share/phpMyAdmin)의 config.inc.php이다. 동일한 위치의 샘플파일(config.sample.inc.php)을 열어서 상단의 $cfg['blowfish_secret'] = ' '; 를 찾고 ' '사이를 32자 이상의 아무 문자(대소문자,특수문자,숫자 등)로 채워주자. 저장할 때에는 config.inc.php라는 이름으로 저장하면 해결된다.
-The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.
: 템플릿 캐싱 용도로 사용할 .tmp 디렉토리가 없거나 있더라도 접근권한이 없어서 나오는 경고 메시지 같다. 일단 phpMyAdmin의 홈디렉토리에 tmp라는 이름의 서브디렉토리를 만들어주고 퍼미션을 777로 주면 해결된다.
-phpMyAdmin 설정 스토리지가 완전히 설정되지 않아, 일부 확장 기능들이 비활성화 된 상태입니다. 원인을 확인하려면 여기를 클릭하세요. 대신 데이터베이스 작업 탭을 사용하여 설정할 수도 있습니다.
: 밑줄친 '여기'를 클릭해 보면 "Create a database named 'phpmyadmin' and setup the phpMyAdmin configuration storage there."라는 메시지가 나온다. 일단 phpmyadmin이라는 이름의 db를 만들기 위해 링크된 create를 클릭하면 아래의 그림과 같이 모든 설정까지 완료된다.
이제 로그아웃 후에 다시 로그인 해 본다. 아래와 같이 모든 오류/경고 메시지가 사라졌다.
phpmyadmin최신글
2021.04.12 - [Linux/TIP] - [CentOS 8] phpMyAdmin 5.1 설치 및 보안설정
- phpMyAdmin 최종정리 - 2022.08.03
2022.08.03 - [Linux/TIP] - [CentOS] phpMyAdmin 최신버전 설치와 설정 [최종]
'Linux > TIP' 카테고리의 다른 글
[Adminer] vs phpMyAdmin (0) | 2020.07.26 |
---|---|
SSL3_GET_RECORD:wrong version number, errno 0 (0) | 2020.07.20 |
google search console : DNS 레코드 인증으로 사이트 등록하기 (0) | 2020.05.31 |
가상머신을 이용한 linux server 테스트 (0) | 2020.04.19 |
워드프레스, 그누보드로 만든 홈페이지(사이트)의 서버 이전 (0) | 2020.01.20 |
댓글