EC2 인스턴스
에 접속한 뒤, 패키지매니저를 통해 phpMyAdmin
을 설치해준다. 먼저 sudo apt update
를 통해 패키지 업데이트를 진행하고 sudo apt install phpmyadmin
으로 phpMyAdmin
을 설치해준다.
phpMyAdmin
의 설치가 진행되면 다음과 같은 화면이 나오는데 Yes
를 선택하고 넘어간다.
MySQL
어플리케이션 암호는 phpMyAdmin
이 내부적으로 MySQL
과 통신하기 위해 사용하는 것으로 비워두고 엔터를 치면 자동으로 생성된다. 원하는 비밀번호를 지정해주자.
다음으로 웹 서버를 고르는 화면이 뜨는데, Nginx
를 위한 옵션은 없으므로 TAB
을 누르고 엔터를 눌러 웹 서버를 선택하지 않고 넘어간다.
apache2
를 선택했다가 지우고 재설치하는 등, 시행착오를 굉장히 많이 겪었다. 반드시 본인의 환경에 맞는 것을 선택하도록 하자(--purge
옵션을 추가해서 제거해야 한다. 즉, sudo apt remove --purge <패키지명>
과 같이 명령을 입력해야 한다. 기본적으로 debian 계열(우분투 포함)
은 설정 파일과 같은 특정 파일을 관리하고 있는데, 이 파일들은 --purge
옵션을 사용할 때에만 제거될 수 있다. 잘못 설치해서 다시 처음부터 설치하고 싶은 경우 삭제할 때 --purge
를 잊지 말도록 하자.phpMyAdmin
설치는 끝났지만 Nginx
웹 서버가 phpMyAdmin
파일을 올바르게 찾고 제공하려면 설치 파일에서 Nginx
문서 루트 디렉토리로의 심볼릭 링크를 만들어야 한다. 다음과 같이 만들어준다.
마지막으로 phpMyAdmin
이 의존하는 PHP 모듈인 mcrypt
를 활성화해야 한다. 이는 phpMyAdmin
과 함께 설치되었으므로 이를 켜고 php7.0-fpm
을 다시 시작한다.
이제 phpMyAdmin
설치가 완료되었으므로 http://server_domain_or_IP/phpmyadmin
으로 웹 브라우저에서 접근하면 phpMyAdmin
화면이 나와야 하는데.. 안나온다.
/etc/nginx/sites-available/default
라는 설정 파일에 index.php
를 추가해준다(여기서 삽질을 굉장히 많이 했다. 앞의 게시글을 그대로 따라왔다면 당장 /var/www/html/index.php
파일을 /var/www/html/phpinfo.php
로 변경하도록 하자. 그렇지 않으면 계속해서 앞전의 PHP
설치정보를 보여주는 index.php
페이지가 보일 것이다).
그리고 다시 http://server_domain_or_IP/phpmyadmin
으로 접근하면 다음과 같이 phpMyAdmin
화면을 볼 수 있게 되었다.
기쁜 마음으로 로그인을 하고 접속하려는데... 404 Not Found
.... 이는 phpmyadmin
내부에 존재하는 파일을 찾지 못해서 생긴 에러인듯 하다(자세한 건 좀 더 찾아봐야겠다).
/etc/nginx/sites-available/default
설정 파일에 다음 코드를 추가해서 해결했다. location /phpmyadmin
은 /phpmyadmin
으로 접근했을 때 무언가 동작하는 코드인듯 하다. 마찬가지로 찾아봐야겠다.
위의 코드를 추가해주고 sudo service nginx restart
명령어로 nginx
를 재실행해서 변경된 설정을 적용해준 다음, 로그인을 하면 이제 제대로 된 phpMyAdmin
웹 인터페이스 화면이 나온다.
봇을 비롯해 해커들은 지속적으로 phpMyAdmin
로그인 페이지를 가지고 있는 웹서버를 스캔하고 있다. 따라서 URL을 변경할 필요가 있다. 앞서 DocumentRoot
인 /var/www/html/phpmyadmin
에 대한 심볼릭 링크를 생성했다. 지금 필요한 것은 위의 심볼릭 링크의 이름을 변경해주는 것이다. 다음과 같이 변경해주면 된다.
이 과정을 통해 이제 http://server_domain_or_IP/php_colt
로 phpmyadmin
에 접근할 수 있다.