Ubuntu 18.04 Server / phpMyAdmin 설치하는 방법
Ubuntu 18.04 Server에서 phpMyAdmin을 설치하려면 Apache와 PHP, MySQL 또는 MariaDB를 준비한 뒤 phpmyadmin 패키지를 설치하고 데이터베이스 계정으로 로그인합니다. 관리자 도구가 외부에 노출되지 않도록 설치 전에 접근 경로를 제한하고, 데이터베이스 root의 인증 설정을 변경하지 마세요.
설치 전 확인할 사항
phpMyAdmin은 웹 브라우저에서 MySQL이나 MariaDB의 데이터베이스와 테이블을 관리하는 도구입니다. 이 글은 기존 Ubuntu 18.04 Server에서 Apache를 사용하는 경우를 설명합니다. 별도의 웹 서버와 데이터베이스 서버를 사용하거나 Nginx를 사용한다면 연결 경로와 설정이 다릅니다.
Ubuntu 18.04 LTS의 표준 보안 유지보수는 2023년 5월에 종료되었습니다. 기존 시스템이라면 지원되는 Ubuntu 버전으로 이전하는 것이 좋습니다. 당장 이전할 수 없다면 Ubuntu Pro의 보안 유지보수 적용 여부와 phpMyAdmin·PHP·데이터베이스 패키지의 업데이트 범위를 확인하세요. 자세한 내용은 Ubuntu 보안 유지보수 안내를 참고하세요.
다음 예시는 sudo 권한이 있고 Apache, PHP 및 MySQL 또는 MariaDB가 이미 설치되어 있으며, SSH로 서버에 접속할 수 있다고 가정합니다. 설치 전 데이터베이스를 백업하고 패키지 저장소 및 기존 사이트 설정을 확인하세요. 설치 과정에서 Apache 설정이 자동으로 활성화될 수 있으므로, 외부에서 관리 경로에 접근하지 못하도록 먼저 방화벽이나 사설망으로 제한하세요.
Apache에서 관리 경로 제한하기
다음 예시는 Apache에 직접 연결하고 서버의 로컬 연결만 허용하는 방법입니다. 먼저 /etc/apache2/conf-available/phpmyadmin-local.conf 파일을 만들고 다음 내용을 저장합니다.
<Location /phpmyadmin>
Require local
</Location>
설정을 활성화한 뒤 구문을 검사하고 성공한 경우에만 Apache를 다시 불러옵니다.
sudo a2enconf phpmyadmin-local
sudo apache2ctl configtest
Syntax OK가 표시되면 다음 명령을 실행합니다. 오류가 있으면 설정을 수정한 후 다시 검사하세요.
sudo systemctl reload apache2
이 설정은 예시 경로에 적용됩니다. 다른 별칭이나 가상 호스트가 있다면 그 경로도 확인하세요. 리버스 프록시가 앞에 있으면 Apache가 프록시 주소를 클라이언트 주소로 볼 수 있으므로 이 예시만으로 접근 제한이 보장되지 않습니다. 신뢰하는 프록시의 실제 클라이언트 주소 처리와 방화벽을 별도로 검토하세요. Apache의 접근 제어 문서에서 Require 지시어를 확인할 수 있습니다.
phpMyAdmin 설치하기
패키지 목록을 갱신하고 설치합니다. 패키지 가용성과 버전은 저장소 및 보안 유지보수 설정에 따라 달라질 수 있습니다.
sudo apt update
sudo apt install phpmyadmin
대화형 설치 화면이 표시되면 다음 사항을 확인합니다.
- 웹 서버 선택 화면에서 Apache2를 선택합니다. 체크 표시가 있는지 확인한 뒤 진행합니다. Enter만 누르면 항목이 선택되지 않을 수 있습니다.
dbconfig-common설정 여부를 묻는 경우, 패키지가 phpMyAdmin의 추가 기능용 데이터베이스를 구성하도록 하려면 Yes를 선택합니다. 이 데이터베이스는 관리하려는 애플리케이션 데이터베이스와 다릅니다. 기존 설정을 직접 관리한다면 No를 선택할 수 있습니다.- 암호를 묻는 화면에서는 표시된 계정과 용도를 확인하고 안전한 암호를 입력합니다. 설정 과정에서 필요한 데이터베이스 관리자 인증은 기존 서버의 인증 방식에 따라 달라질 수 있습니다.
설치 후 구성 파일과 Apache 연결 여부를 확인합니다. Ubuntu 패키지의 설정은 주로 /etc/phpmyadmin에 있으며, 패키지 구성에 따라 다를 수 있습니다.
ls /etc/phpmyadmin
systemctl status apache2 --no-pager
SSH 터널로 접속하기
관리자 PC에서 SSH 클라이언트를 열고 다음 명령을 실행합니다. user와 server는 실제 SSH 계정과 서버 주소로 바꿉니다. 관리자 PC의 8080 포트를 서버의 로컬 80 포트로 연결하며, SSH 연결이 유지되는 동안 사용할 수 있습니다.
ssh -L 127.0.0.1:8080:127.0.0.1:80 user@server
같은 PC의 브라우저에서 http://127.0.0.1:8080/phpmyadmin을 엽니다. 브라우저와 SSH 클라이언트가 같은 PC에서 실행되어야 하며, 서버의 Apache가 로컬 80 포트에서 해당 경로를 제공해야 합니다. 로그인 화면이 보이면 허용된 데이터베이스 사용자 이름과 암호를 입력하세요. SSH 세션을 종료하면 터널도 닫힙니다.
직접 HTTPS로 접근하도록 구성하는 환경이라면 유효한 TLS 인증서와 별도의 접근 제한이 필요합니다. 방화벽이나 Apache의 허용 IP는 실제 관리자 주소에 맞게 설정하고, 허용된 주소와 허용되지 않은 주소에서 각각 접근 결과를 확인하세요. 관리자 페이지를 인터넷 전체에 공개하지 않는 것이 좋습니다.
로그인 계정과 권한
phpMyAdmin의 로그인은 MySQL 또는 MariaDB 계정으로 인증합니다. 운영에 필요한 데이터베이스와 작업에만 권한을 가진 전용 계정을 사용하세요. 계정의 접속 호스트와 권한은 실제 데이터베이스 서버의 설정과 일치해야 합니다. 파일 업로드나 데이터 변경을 하기 전에는 대상과 백업을 다시 확인하세요.
Linux의 root 계정과 데이터베이스의 root 계정은 다릅니다. 데이터베이스 root가 로컬 소켓 인증으로 설정된 경우 웹 로그인에 사용할 수 없을 수 있습니다. 이를 해결하려고 시스템 테이블을 직접 수정하거나 root의 인증 플러그인을 비우지 마세요. 필요한 권한의 별도 계정을 만들고 해당 데이터베이스 제품의 계정 관리 문서를 따르세요.
접속되지 않을 때
- 403 Forbidden: 접근 제한이 적용된 상태인지, SSH 터널을 사용 중인지 확인합니다. 프록시와 Apache가 인식하는 클라이언트 주소도 확인하세요.
- 404 Not Found: 설치 중 Apache2가 선택되었는지와 phpMyAdmin의 Apache 설정이 활성화되어 있는지 확인합니다. 다른 가상 호스트나 별칭을 사용한다면 해당 설정을 확인하세요.
- 로그인 실패: 데이터베이스 사용자 이름, 암호, 접속 호스트와 권한을 확인합니다. 웹 서버 계정이나 SSH 계정과 데이터베이스 계정은 서로 다를 수 있습니다.
- PHP 화면 오류: Apache와 PHP의 연동, 필요한 PHP 확장, Apache 오류 로그를 확인합니다. 설치 및 설정 경로는 배포판 패키지에 따라 달라질 수 있습니다.
설정 변경을 되돌려야 한다면 기존 백업을 복구하고 구문을 재검사하세요. 이 글의 로컬 제한 설정을 비활성화하면 관리 경로가 다른 설정에 의해 외부에 노출될 수 있으므로, 먼저 대체 접근 제어가 적용되어 있는지 확인해야 합니다. phpMyAdmin 자체의 설치와 보안 설정은 공식 설치 문서를 참고하세요.




