phpMyAdmin : 정의 + 설치 + 연동(ubuntu20.04의 nginx서버에)

Benjamin·2022년 8월 29일
0

AWS

목록 보기
4/4

phpMyAdmin

정의 및 용도

  • GUI(그래픽 사용자 인터페이스)를 사용하여 MySQL 및 MariaDB 데이터베이스를 관리하는 웹 기반 응용 프로그램 (오픈소스 소프트웨어)
  • 사용자가 데이터베이스 테이블을 생성, 편집, 수정 및 삭제할 수 있는 쉬운 방법을 제공
  • 데이터 추가, 제거 및 수정 SQL 문을 실행하고 사용자 권한을 관리
  • windows, Mac OS X, Linux 및 Unix 를 포함한 다양한 플랫폼에서 사용가능
  • Firefox, Chrome, Safari 및 internet Explorer와 같은 널리 사용되는 웹 브라우저와도 호환
  • 데이터 가져오기 및 내보내기와 같은 기타 작업 수행 가능

작동 방법

PHP 스크립팅 언어와 MySQL 프로세스를 사용하여 MySQL 데이터베이스 서버에 연결하여 작동.
연결되면 사용자는 해당 서버의 기존 DB를 검색하고, SQL쿼리를 실행하고, 새 DB 레이아웃 또는 테이블을 생성하고, 사용하지 않는 구조를 삭제하고, 테이블 이름을 변경하고, 인덱스를 생성하고, 사용자 및 권한을 관리하고, 모든항목을 볼 수 있다.
PHP를 실행하는 모든 컴퓨터, 서버 또는 운영체제에 설치할 수 있다.

설치 및 경로설정

sudo apt update

sudo apt install phpmyadmin
설치를 진행한다.


설치할 서버를 고르는데, nginx는 없기때문에 tap키를 눌러 아무것도 선택되지 않게한 후 엔터로 ok를 선택해 넘어간다.
이후 dbconfig-commond으로 db 설정하겠냐고 물어보는데 yes에 엔터를 하고, 비밀번호 설정을 해준다.

설치가 끝났다!

이제 심볼릭 링크를 생성해주자.

sudo ln -s /usr/share/phpmyadmin /var/www/html/pma
!phpmyadmin은 해커들이 좋아하며, 자동화된 스크립트가 phpMyAdmin 설치를 찾고 무차별 대입 공격을 시도하기때문에 사용하지 않는것이 좋다.
따라서 나는 /pma로 설정하여 pma 링크를 생성해주었다.

심볼링 링크

링크를 연결하여 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크 (윈도우 바로가기와 비슷)
특정 폴더에 링크를 걸어 NAS, library 원본파일을 사용하기 위해 심볼릭 링크를 사용한다.
$ ln -s [original file path(대상 원본 파일)] [symbolic file path(새로만들 파일 이름)]

http://[ip]/pma 로 접속해보니 다음과 같이 403에러가 났다.

이는 nginx 설정 디렉터리에 php설정이 안 된 부분이 있기 때문이다.

sudo cd /var/www/html
sudo mv index.php phpinfo.php로 파일이름을 변경한다.
(참고로 이렇게 변경했으니 php기본 페이지는 'http://[ip]/phpinfo.php'로 들어가야한다.)

sudo vi /etc/nginx/sites-available/default를 편집한다.

이 리스트에 index.php를 추가한다.
(추가하지 않으면, 공인 ip를 입력할 때, default로 index.php가 나온다)

저장하고 나온 후, nginx를 재시작한다.
sudo service nginx restart

이제 주소창에 http://[ip]/pma를 입력하면 정상적으로 접속된다!
(심볼릭링크를 생성하지않았으면, http://[ip]/phpmyadmin 으로 접속)

+또 다른 경로설정 방법

새로운 server{}블록을 추가 한 후, 별도의 도메인을 매칭해서 phpmyadmin을 연결할 수도 있다.(도메인 구매처에서 서브도메인 설정 필요)

간략히 설명하면,
/etc/nginx/conf.d/phpmyadmin.conf 여기에 아래의 내용과같은 새로 파일을 만들어준다.

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /usr/share/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

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

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

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

  location ~ /\.ht {
    deny all;
  }
}

또 다른 경로설정 방법

0개의 댓글