All Post 기획자의 개발이야기 Development

GCP에서 워드프레스 마이그레이션 및 bitnami LAMP 설정 방법

Written by vonzone

나의 블로그(워드프레스)는 GCP(google cloud platform)에서 운영되고 있는데 최근 블로그가 자주 다운되는 현상이 발생했다. 이상하게 블로그만 접속하면 메모리 사용량이 올라가면서 Mysql이 계속 다운 되는 것이다. 원인을 찾지 못해서 결국 다시 VM을 생성해서 마이그레이션을 진행했다. 새로 생성한 VM은 bitnami에서 제공하는 LAMP를 이용했는데 그 과정에서 알게된 몇 가지 설정방법과 Tip을 소개하고자 한다. 나는 GCP를 사용했지만 AWS를 이용하는 사람도 충분히 활용할 수 있다.  참고로 해당 포스트에 나오는 설정 방법들은 Bitnami LAMP를 처음 이용하는 사람들을 위한 내용이니 클라우드 자원 활용에 능숙한 분들은 해당 포스트에 시간을 투자할 필요가 없다.


Bitnami LAMP 기본 설정방법

나는 이번 블로그(워드프레스) 마이그레이션 할  VM을 새로 생성하는 과정에서 bitnami에서 제공하는 LAMP(launcher)를 이용했다. bitnami에서 제공하는 워드프레스 launcher(위에서 언급한)를 이용할 수도 있었지만 Virtual Host를 활용하여 다른 것들도 할 부분들이 있어서 그냥 LAMP를 이용했다.

*Cloud launcher : 사람들이 많이 사용하는 소프트웨어와 기본 설정들이 적용되어 있는 상품 마켓이라고 할 수 있다.  launcher를 이용해서 VM을 생성하면 소프트웨어와 함께 관련 설정들이 모두 자동으로 적용되어 VM이 생성되기 때문에 굉장히 편리하다.

bitnami에서 제공하는 LAMP를 설치했으면 기본적으로 진행해야 할 사항들은 다음과 같다.

  • 기본 참고 사항 : bitnami에서 배포되는 소프트웨어들은 경로설정이 일반적인 리눅스와 다르다. 예를들어, 일반적인 데비안의 경우  /etc/apache2/에  Apache(아파치)의 설정파일이 있는데  bitnami 배포버전에서는 /opt/bitnami/apache2/conf 경로에 존재한다. 즉, 일반적인 리눅스와 다르게 /opt/bitnami/라는 경로가 추가적으로 붙는다.
  • root의 기보 비밀번호 확인 : GCP Console에서 LAMP가 설치된 VM의 상세페이지로 들어가면 bitnami-base-password 라는 항목이 있는데 여기에 root의 비밀번호가 적혀있다. 그리고 이것이 mysql root 권한의 비밀번호다.
  • phpmyadmin 설정 : phpmyadmin을 사용하는 사람은 로그인 페이지에 기본적으로 보안을 더 강화하는 것이 좋다.
    • /opt/bitnami/apps/phpmyadmin/conf/httpd-app.conf 파일을 열어서 아래 소스를 마지막에 추가한다.
    • 위 코드를 추가하였으면 아래 명령어를 입력하여 아파치를 재시작 한다.
  • 외부에서도 DB 접속하는 방법 : 위 작업이 진행되었으면 이제 외부에서도 DB에 접속할 수 있도록 설정을 하도록 하겠다. 만약 phpmyadmin만 이용할 사람이라면 이 설정을 할 필요는 없다. heidisql과 같은 Database Client를 이용하는 사람만 설정하면 된다.
    • 방화벽설정 : 네트워크 세부정보 페이지에 접속해서 mysql에 대한 방화벽 규칙(IP범위 지정 가능)을 추가한다.
    • 그리고 DB사용자에게 어디에서나 접근(%) 이나 특정 IP에서의 접근 권한을 주면 된다.
    • http://egloos.zum.com/beizix/v/2560401
  • bitnami 기본 명령어 : bitnami 배포버전에서는 아파치, Mysql의 재시작 명령어가 다른 일반적인 리눅스와 다르기 때문에  우리들이 흔히 알고 있는 기본적인 명령어들은 제대로 작동을 하지 않는다. 예를들면, service mysql restart 와 같은 명령어는 실행되지 않는다. 자주 사용되는 명령어는 다음과 같다.
    • 참고 : bitnami문서

Virtual Host 설정 방법

기본적으로 리눅스에서 Virtual Host를 수정한다고 하면 /opt/bitnami/apache2/conf/ 에 있는 설정 파일들을 건드리려고 한다.

그런데  bitnami에서는 변경해야 할 파일들이 좀 다르다. (이 부분을 잘 모르면 생각보다 많은 삽질을 하게 된다.)

bitnami 문서 참고

그리고Virtual Host 설정 관련하여 알아야 할 파일이 2가지 있다.

  •  httpd-prefix.conf :이 파일의 경우 http://domain.com/appname 처럼 도메인 뒤에 경로를 설정할 때 필요한 파일이다.
  • httpd-vhosts.conf :  http://appname.domain.com 처럼 서브 도메인으로 접속할 때 필요한 설정파일이다.

나는  http://quotes.vonzone.kr 이라는 서브도메인으로 접속하기 위한 방법을 설명하겠다. Virtual Host를 위한 quotes 앱의 기본적인 구조는 다음과 같다.

  • 일단, /opt/bitnami/apps/ 경로에  quotes 라는 폴더(app name)를 생성한다.  그리고 그 폴더 안에 conf 폴더와  htdocs 폴더를 생성한다.
  • http://quotes.vonzone.kr 라는 도메인으로 접속 시 htdocs 폴더안으로 접속된다. 즉, htdocs 폴더가 DOCUMENT_ROOT가 되는 것이다.
  • conf 폴더 안에는 httpd-app.conf 파일과 httpd-vhosts.conf 파일을 생성한다.(httpd-prefix.conf 파일은 사용하지 않을 예정이므로 생성할 필요가 없다.) 그리고 .htaacess 파일도 conf 폴더 안에 위치해야 한다. bitnami는 보안을 위해 .htaccess 파일을 htdocs 폴더가 아니라 conf 폴더에서 실행시킨다고 한다.(참고 페이지)
  • 그리고 이러한 설정파일들은 Include를 통해 서로 연결된다. 즉, App에서 설정한 conf 파일들이 Include를 통해 apache 설정 파일까지 연결되는 것이다.
  • 아래 파일들은 http://quotes.vonzone.kr 도메인으로 접속하기 위해 /opt/bitnami/apps/quotes/conf 경로에 설정한 파일들이다. /opt/bitnami/apps/quotes/conf/httpd-app.conf 파일과  /opt/bitnami/apps/quotes/conf/httpd-vhost.conf 파일의 코드는 다음과 같다.
  • /opt/bitnami/apps/quotes/conf 경로에서의 설정이 완료되었으면 이제 아파치 설정 파일에 include하면 된다. /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf 파일에서 아래와 같이 추가해주면 된다.
    그리고 혹시 /opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf 파일에 include 되어 있으면 그 코드는 주석처리한다.
  • 설정이 모두 완료되었으면 apache를 다시 시작한다.
     

워드프레스 마이그레이션 할 때 필요한 TIP

  • 플러그인 자동설치를 위한 폴더권한 : 위 설정자업을 완료 후 나는 기존 VM에서 다운로드 받은 WordPress 폴더를 새로 생성한 VM에 업로드 하였다. 그리고 추가적으로 워드프레스 플러그인을 설치하려고 하는데 계속 디렉터리 생성에 실패했다는 메세지가 나오고 플러그인 설치가 되지 않았다. 그 이유는 플러그인을 자동으로 설치하기 위해서는 시스템에 폴더를 생성할 수 있는 권한(쓰기)이 있어야 하는데 폴더의 소유자와 그룹을 모두 내계정으로 했기 때문에 발생한 문제였다. 따라서 만약 플러그인 자동설치가 안 된다면 아래 명령어로 시스템에 권한을 주면 된다.
    참고로 폴더 권한을 777로 줄 필요가 없다. 웹으로 검색하면 권한을 777로 주라고 하는데 그 방법은 권하고 싶지 않다.
  • 만약 홈페이지의 도메인도 새로 변경된 경우 워드프레스에서 약간의 DB작업도 해야 한다. 왜냐하면 워드프레스의 Post에 업로드 된 이미지들은 DB에 Full 경로로 Insert가 되기 때문이다. DB자업을 안 해주면 이미지들이 엑박으로 나올 가능성이 크다. 따라서 아래 sql 문을 순차적으로 실행시켜 준다.
     

워드프레스(Launcher) 선택 Tip:  Bitnami에서 배포하는 WordPress를 권장한다.

WordPress의 경우 Google에서도 제공하는 Launcher가  있는데 원인을 잘 모르겠으나 Google에서 제공하는 Launcher는  메모리 사용량이 굉장히 높고 Mysql이 자주 다운되곤 했다. 위에서 언급한 내 블로그도 그랬고 내가 다른 곳에서 활용한 블로그도 동일한 현상을 보였다. 심지어 메모리가 3.7GB인데도 그런 현상이 나타나곤 했다. 반대로 bitnami에 제공하는 WordPress의 경우 그런 현상이 나타나지 않았으며 속도도 굉장히 빠르다. 따라서 Launcher를 활용해서 워드프레스를 설치할 경우 bitnami에서 배포하는 버전을 권장하고 싶다.

About the author

vonzone

서비스 기획자입니다. 평범한 사람임에도 불구하고 특별한 일을 해내고자 합니다.

%d 블로거가 이것을 좋아합니다: