가이드

운영 가이드 08. phpMyAdmin 설치와 Nginx 연동

Ubuntu 24.04에서 phpMyAdmin을 설치하고, Nginx 환경에서 alias 또는 별도 location으로 연결해 브라우저에서 DB를 관리하는 기본 흐름을 정리했습니다.

우분투 관리자 2026.05.03 조회 283

운영팀이 DB를 가끔 브라우저에서 봐야 하는 환경이라면 phpMyAdmin이 여전히 편합니다.

다만 외부 공개 경로로 그대로 두면 공격 표적이 되기 쉬우므로 설치 자체보다 접근 제어를 함께 설계하는 편이 중요합니다.

패키지 설치

설치 중 웹서버 자동 구성 화면이 나오면 Nginx만 쓰는 경우 Apache 자동 구성을 꼭 선택할 필요는 없습니다. 이후 Nginx 쪽에서 직접 연결하는 방식이 더 명확합니다.

sudo apt update
sudo apt install -y phpmyadmin

Nginx에서 phpMyAdmin 연결 예시

sudo nano /etc/nginx/snippets/phpmyadmin.conf
location /phpmyadmin {
    alias /usr/share/phpmyadmin/;
    index index.php index.html index.htm;
}

location ~ ^/phpmyadmin/(.+\.php)$ {
    alias /usr/share/phpmyadmin/$1;
    include snippets/fastcgi-php.conf;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}

location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
    alias /usr/share/phpmyadmin/$1;
}
server {
    listen 80;
    server_name example.com;

    root /var/www/html/site/public;
    index index.php index.html;

    include snippets/phpmyadmin.conf;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

설정 반영

sudo nginx -t
sudo systemctl reload nginx

보안 권장 사항

  • 가능하면 `/phpmyadmin` 대신 별도 숨김 경로를 사용합니다.
  • IP 제한 또는 VPN 내부에서만 접근하도록 잡아 두는 편이 좋습니다.
  • 웹 계정과 DB root를 혼용하지 말고 관리용 전용 DB 계정을 만듭니다.
  • 사용하지 않을 때는 location 자체를 주석 처리해 잠가 두는 방식도 고려합니다.

phpMyAdmin은 편하지만 공개 서버에서 기본 경로로 오래 열어 두는 것은 추천하지 않습니다.

점검 명령

sudo nginx -t
systemctl status php8.3-fpm
ls -ld /usr/share/phpmyadmin

마무리 메모

phpMyAdmin 연결이 끝나면 다음 단계는 실제 도메인에 HTTPS를 적용해 관리자 화면과 로그인 구간을 암호화하는 것입니다.

운영팀이 자주 쓰지 않는다면 phpMyAdmin은 항상 열어 두기보다 필요할 때만 노출하는 편이 더 안전합니다.