AWS프리티어에 워드프레스 2개 돌리기

AWS 프리티어에 워드프레스를 2개 돌리려던 시도를 실패한 후 몇번 다시 해보려다가 어제 다시 시도해서 성공했다. 지난번 실패의 이유는 두번째 워드프레스(든 버츄얼호스트든) 홈 디렉토리를 기존 워드프레스 홈 디렉토리의 하부 디렉토리에 설정하지 않아서이다. 즉 2nd 워드프레스 폴더를 /opt/bitnami/apps/wordpress/2nd 로 지정하려고 했었는데 기존 /opt/bitnami/apps/wordpress/htdocs 아래인 /opt/bitnami/apps/wordpress/htdocs/2nd 로 사용해야 했다. 처음 시도와 다르게 이번에는 별도의 DB생성없이 기존 DB를 그대로 이용하여 설치하였다.

  1. https 리다이렉트를 위해 설정한 부분 주석처리 /opt/bitnami/apache2/conf/bitnami/bitnami.conf
    #RewriteEngine On
    #RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
    #RewriteRule ^/(.*) https://example.com/$1 [R,L]
  2. virtual host 설정 (Help setting up apache2 virtual host config for bitnami wordpress for two sites (Not multisite) 참조)
  3. /opt/bitnami/apps/wordpress/conf/httpd-vhost.conf
    <VirtualHost *:80>
    ServerName hof.pe.kr
    ServerAlias www.hof.pe.kr
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    </VirtualHost>
    <VirtualHost *:80>
    ServerName 2번째도메인.kr
    ServerAlias www.2번째도메인.kr
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs/2nd"
    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    </VirtualHost>

  4. /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf 에서 아래 행 추가 (또는 주석 제거)
  5. Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf"

  6. 2번째 도메인의 DNS 설정에서 기본도메인과 WWW 도메인을 AWS서버 IP를 향하도록 지정
  7. /opt/bitnami/apps/wordpress/htdocs 아래에 2nd 폴더 생성
    /opt/bitnami/apps/wordpress/htdocs/2nd

  8. 워드프레스 최신버젼을 다운받아서 이 폴더에 올림.
  9. 원래 워드프레스 홈 디렉토리에 있던 wp-config.php 파일을 2nd 디렉토리로 복사 ( 워드프레스 설정파일 값 세팅하기 ( WordPress wp-config.php) 참조)
  10. DB의 prefix 를 원래 워드프래스와 다르게 지정
  11. $table_prefix = 'wp2_';

  12. https://api.wordpress.org/secret-key/1.1/salt/ 에서 생성된 키를 wp-config.php 에서 해당 부분 찾아 대체.
  13. 아파치 재시동
  14. sudo /opt/bitnami/ctlscript.sh restart apache

  15. 2nd 워드프레스 디렉토리를 웹브라우저로 접근하여 워드프레스 설치
  16. 여기부터는 Generate And Install A Let’s Encrypt SSL Certificate For A Bitnami Application 참조

  17. 워드프레스 기본 설치 페이지가 나온 것을 확인 후 SSL 키 생성을 위해 아파치 중지
  18. sudo /opt/bitnami/ctlscript.sh stop

  19. 키 생성
  20. sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" run

  21. /opt/bitnami/letsencrypt/certificate 에 두번째 도메인의 .crt와 .key 등이 생성되었는지 확인
  22. virtual host 설정에서 https 설정하도록 함. 아래 설정한 디렉토리에 맞게 키 파일 이동
  23. 원래 있던 *80 설정 아래에 각각 아래 내용을 도메인에 맞도록 추가

    <VirtualHost *:443>
    ServerName hof.pe.kr
    ServerAlias www.hof.pe.kr
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apps/wordpress/conf/certs/hof.pe.kr.crt"
    SSLCertificateKeyFile "/opt/bitnami/apps/wordpress/conf/certs/hof.pe.kr.key"
    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    </VirtualHost>

    2번째 도메인용

    <VirtualHost *:443>
    ServerName 2번째도메인
    ServerAlias www.2번째도메인
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs/2nd"
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apps/wordpress/conf/certs/2번째도메인.crt"
    SSLCertificateKeyFile "/opt/bitnami/apps/wordpress/conf/certs/2번째도메인.key"
    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    </VirtualHost>

  24. 아파치 시작
  25. sudo /opt/bitnami/ctlscript.sh start

남은 과제

  • hof.pe.kr 과 2번째 도메인으로 들어오는 http 접속을 https 로 강제 리다이렉션이 잘 안됨. 도메인 하나일때와 버츄얼 호스팅일때 설정 방법이 다른지 확인. –> 해결. /opt/bitnami/apache2/conf/bitnami/bitnami.conf 에 있던 리다이렉션 설정을 /opt/bitnami/apps/wordpress/conf/httpd-vhosts.conf 에서 지정 (via Force HTTPS Redirection With Apache )
  • SSL 인증서를 임의로 옮긴 후 버츄얼호스트에서 경로를 지정해주긴 했는데 나중에 수동이든 자동이든 갱신하고나서 또 매번 이동해줘야하는지 아니면 갱신 스크립트가 지정하는 폴더로 이동시키고 그 위치를 버츄얼 호스트에서 지정해줘야 할지 확인해야 함.

기타 설정

  • pretty permalink를 위해 http://recreationcoach.kr/&post_id%/로 지정했고 아래 내용을 /opt/bitnami/apps/wordpress/conf/htaccess.conf 에 등록했다. (그런데 hof.pe.kr 은 이 방식 주소가 예전부터 써오던것을 aws로 이사온 뒤로도 자연스럽게 되니 갸우뚱)
  • <Directory "/opt/bitnami/apps/wordpress/htdocs/2nd">
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    </Directory>

이종사촌 모임

추석연휴 마지막 이틀은 외가쪽 사촌동생들과 부부동반, 미혼인 녀석들은 여친동반 / 남친동반해서 1박 2일여행을 다녀왔다. 집안 행사에 다같이 모인 적은 가끔 있어도 이렇게 숙소잡고 근교로 나온 것은 처음. 제일 막내녀석이 서른하나니까 모든 멤버가 등장한 이후 31년만의 이종사촌간 여행인 셈이다.

내가 열살때부터 고3때까지 새로 태어났던 녀석들이, 나는 기억하지 못하거나 가물가물한 일들을 기억속에서 찾아내어 들려주는 일은 언제 들어도 좋다.

[업데이트]@2019/9/16 12:00
저녁먹으면서 잠시 금연에 대한 이야기를 했는데 바로 아래 사촌남동생이 오늘부터 금연을 시작했다고 알려왔기에 얼른 금연 시작할 당시에 도움받았던 책을 보내주었다.

AWS 프리티어에 다른 도메인으로 워드프레스 설치

AWS프리티어에 이 블로그 하나를 돌리고 있는데 다른 도메인으로 워드프레스를 하나 더 돌릴 수 있는지 보는 중이다. 프리티어의 제약이나 한계를 넘는다면 바로 라이트세일로 이전할 예정.

스위프트코딩의 하나의 서버에 워드프레스 두 개이상 설치하기(직접설치) 시리즈를 참고로 하고 있는데 중간중간 명령어가 안먹히는 부분이 있어서 그 부분 위주로 정리한다. 라이트세일에서 설치하는 방법인데 프리티어라 오류가 난건지, MySQL버젼이 달라서 그런건지는 모르겠다. 스위프트코딩에서 댓글을 보면 내 경우같은 오류를 겪은 분들은 없어서 갸우뚱하지만.

  • 루트 비번 찾기
    cat bitnami_application_password 는 없는 파일이라고 에러났고
    cat ./bitnami_credentials 으로 비번 확인 가능했다. (참고 Find Application Credentials)
  • 새로운 DB를 생성하고 새 사용자를 추가한 후 비밀번호를 지정할 때
    SET PASSWORD FOR SecondBlogDBUser@localhost= PASSWORD(“mypassword”); 가 에러가 났고
    ALTER USER 'SecondBlogDBUser'@'localhost' IDENTIFIED BY 'new_password'; 가 제대로 동작했다. (참고 ERROR 1064 (42000): You have an error in your SQL syntax; Want to configure a password as root being the user)
  • 권한 부여할 때
    GRANT ALL PRIVILEGES ON second_wordpress.* TO SecondBlogDBUser@localhost IDENTIFIED BY ‘mypassword’; 가 에러가 났고
    GRANT ALL PRIVILEGES ON second_wordpress.* TO'SecondBlogDBUser'@'localhost'; 가 제대로 동작했다. (참고 How to grant all privileges to root user in MySQL 8.0)
  • 권한 확인할 때
    show grants for ‘SecondBlogDBUser’; 가 에러가 났고
    show GRANTS FOR 'SecondBlogDBUser'@'localhost'; 가 제대로 동작했다. (참고 13.7.7.21 SHOW GRANTS Syntax)

[업데이트]@2019/09/08 13:00
결국 포기했다. DB셋팅은 그렇다쳐도 버츄얼호스트 설정이 너무 헷갈려서 나중엔 뭘 바꿨는지도 모를 지경. ㅎ SSL 인증서 받고 설정까지 다 해놓고 아파치 리스타트 하고나니 2개 도메인의 http와 https모두 403에러. 어제 밤에 대충 설정파일들 원복하고 오늘 아침에 혹시나 싶어 비트나미의 버츄얼호스트 설정법을 따라 워드프레스 설치 대신 버츄얼호스트 지정해서 평범한 index.html 하나 보이도록 했는데 그 또한 제대로 보이지 않았다.

[업데이트]@2019/09/17 02:45
성공했다. 작업 내용은 AWS프리티어에 워드프레스 2개 돌리기

바이크와 추돌사고 마무리

지난주 바이크가 와서 후방 추돌했던 사고가 마무리됐다.

  • 사고 당일 센터 입고, 뒷범퍼 도색과 하단 스포일러 교체 : 약 87만원
  • 수리 기간 중 렌트하지 않고 교통비로 입금 받음.
  • 비록 가해자 과실 100% 사고지만 사고 후 즉시 사과와 접수번호 전달, 안부와 사과 문자등에 마음이 짠. 피곤하실 때 드시라고 스벅 아메리카노 2장 보냄.
[사고 후 상대방 운전자와 나눈 문자]

보증기간 내 마이크로SD카드 고장

블랙박스에 쓰던 국내 메이커 마이크로SD 카드를 얼마전 교체했다. 블박 녹화라는 것이 용량이 다 차면 먼저 녹화한 분량부터 지워지면서 새 영상이 녹화되는데 전체 녹화시간이 좀 모자란 감이 있었다. 이에 128기가 짜리를 새로 사서 사용하고 있다.

[쓰던 메모리카드(왼쪽)과 요즘 쓰는 메모리카드]

기존 마이크로SD는 2016년 9월부터 쓰던걸 2019년 4월까지 썼으니 2년 7개월 가량 사용한 셈. 보증기간이 5년이었으니 혹시나해서 백업용 마이크로SD카드용으로 차량 내 사물함에 보관했다. 지난주 차량 수리건으로 일주일간 센터에 입고되었고 어제 출고하면서 센터에 있는 동안의 영상을 백업 받기 위해 128기가 짜리를 꺼내고 이 녀석을 끼웠다. 블박에 끼우자마자 블랙박스 점검이 필요하다는 오류 메세지가 나왔다. 5개월전까지 잘 쓰던 제품인데 말이다. 식겁하여 2번째 백업메모리카드(응?)를 끼우고 일단 복귀하였다. 리더기에 끼우고 컴에 연결해보니 전혀 인식을 못한다. 새 디크스가 발견되었다거나 포맷을 하라는 메세지 없이 무반응.

AS처를 찾아보니 최초 제조사는 뭔가 복잡한 사정이 있는 것 같고 전화가 돌고 돌아 다른 회사에서 AS를 담당한다고 한다. 통화해보니 이 제품은 단종되어 다른 동일등급 제품으로 교환해준단다. 대만산 MLC. 가격도 처음 구입했던 제품보다 만원 정도 저렴했지만 도리가 없다. A/S기간도 1년으로 줄어 1/5에 불과하다. 요즘 판매되는 제품 가격 찾아보고 왕복 배송비를 계산에 넣으니 10,000원 안팎이 나온다. 저렴하게 되팔던지 태블릿에 끼워 동영상 저장용으로 쓰면 되니까 일단은 반품 신청을 했다.

이번에 겪고보니 마이크로SD카드 수명이 제품에 따라 다르겠지만 꽤나 짧다는 것. 블랙박스 동호회나 카페에 보면 마이크로SD는 1~2년에 한번씩 바꾸는게 좋다는 말이 허세가 아니었다.