태그 보관물: wordpress

AWS Lightsail에 둥지 틀기

여러 국내 호스팅 업체들을 거쳐서 여러 곳에서 WordPress 호스팅 서비스로 추천되는 Siteground에 한동안 정착하는 듯 했다. 준수한 속도에 비해 합리적인 가격($3.95/월) 때문에 당분간 정착할 거라고 생각하고 있었는데 일년이 지나서 서비스 갱신기간이 되자 가격이 세배 넘게 올라서 1년에 $143을 달라고 한다.($11.95/월).
“이건 너무 한 거 아니냐고!”

WordPress hosting은 더 비싸다

대안으로 생각한 것은 1) wordpress.com hosting과 2) AWS Lightsail이었는데, 발견한 한 가지 놀.라.운. 사실은 WordPress hosting에서 플러그인을 설차하려면 한달에 $25 짜리 business plan 이상을 계약해야 한다는 것이다. 한달에 $25라니!!! 멋 모르고 카드 결재를 하고 이리저리 플러그인 설치를 시도하다가 아래의 표를 발견하고는 미련 없이 ‘refund’ 버튼을 눌렀다.

AWS Lightsail은 한 달간 무료 시험기간을 주기 때문에 Siteground 계정이 종료하기 전에 미리 설치를 마쳤다. 인스턴스 리전을 한국으로 할까 하다가 이전 Siteground와 같은 위치인 싱가포르로 선택했고 WordPress의 export/import 기능 덕에 마이그레이션은 수월하게 진행되었다. Domain name은 호스팅 업체와 같은 곳으로 이전하는게 좋다고 해서 AWS Route 53으로 이전 및 1년 연기 등록을 했는데 상위 도메인에 따라 다르지만 .com의 경우 $13.2(세금포함)가 소요된다. 어라? 그러고 보니 Siteground에서 도메인을 연장하는 서비스는 $15.95였는데? 이눔 시키들…

도메인 이전과 새로운 IP 연결

도메인 이전을 요청하니 이전 관리자였던 Siteground에서 확인 메일이 왔고, 수락한 이후에는 하루 후에 AWS로 도메인이 이전되었다. 그 후에는 Lightsail의 네트워킹 탭에서 고정 IP와 DNS 영역을 생성해서 A 레코드를 추가하고 IP와 도메인 이름을 연결 시켜 주었다.

그리고 나서 한참을 DNS가 업데이트 되기를 기다렸다. nslookup은 여전히 예전 IP를 보여줬지만 48시간 까지 걸릴 수 있다는 말에 이틀정도를 기다렸는데도 IP가 업데이트 되지 않았다. AWS Route 53에 가보니 ‘registered domains > [domain name]’ 아래에 Name Servers 항목이 있는데 혹시 이것 때문인가 싶어서 고정 IP를 만들때 나왔던 네임서버 목록으로 업데이트를 해주었다. 그리고 나서 잠시 후 드디어 새로운 IP로 접속되었다!

계속 예전 IP로 돌아가는 도메인 문제와 해결

기쁜 마음으로 꿀잠에 들었는데 다음날 아침에 보니 Jetpack에서 서버연결 붙었다가 끊어졌다가 했다는 연락이 와 있었다. 혹시나 싶어서 서버를 재부팅 해봤더니 재부팅하는 순간 잠깐 IP가 새 것으로 붙었다가 다시 예전 IP로 돌아가는게 보였다. 그니까 누가 AWS 알고 있는 것과 다른 예전 정보를 자꾸 준다는 거지…” 혹시나 하는 마음에 Siteground의 cPannel > Advanced DNS zone editor에 들어가 봤더니 역시나 얘가 예전 주소를 꼭 쥐고 있었다. 예전 사업자의 도메인 서버를 AWS 고정 IP로 수정해 주고 났더니 Jetpack이 사이트 살아났다고 축하한댄다. 다행히 그 후로는 다시 끊어지는 일은 없었다.

도메인 관리자를 변경하고 새로운 IP를 연결 했으니 이전 네임 서버에서는 자동으로 놔 주겠거니 하고 잘 못 생각하고 있었던게 문제 였던듯 싶다.

WordPress permalink(고유주소) 변경

WordPress의 permalink(고유주소) 형식을 변경하면 검색 엔진을 포함해서 외부에서 들어 오는 링크가 동작하지 않는다. 서버에 대한 root권한이 없다면 .htaccess file에, 권한이 있다면 apache2.conf에 새로운 형식의 permalink로 연결되도록 설정해 주는 것으로 이 문제를 해결 할 수 있다.

처음에는 서버를 재시작 할 필요가 없는 .htaccess에 관련 설정을 했었는데,  아파치 투토리얼: .htaccess 파일 문서에 .htaccess file 설정은 성능에 영향을 미칠 수 있으므로 권한이 있는 경우라면 apache2.conf에 설정하라는 이야기가 있어서 이것을 수정했다.

먼저 Apache2의 rewrite module을 enable한다.

그다음 apache2.conf에 관련 설정을 추가한다.

이 설정은 이전의 /archives/xxxx 형식의 글이나, /archives/tag/xxxx 형식의 tag, /archives/yyyy/mm 형식의 날짜를 “Ugly”한 기본 형식으로 변경하기 위한 것이다.

마지막으로 Apache2 서버를 재시작해준다.

 

WPU version 1.0 release

WPU는 WordPress에서 PlantUML 문법을 사용하기 위한 plugin입니다. WPU에 대한 자세한 내용은 지난 포스팅 (WPU – WordPress에서 PlantUML 문법을 사용하기 위한 plugin)를 참고 하세요.

첫번째 버전 release이후, 다른 plugin과의 충돌이나 WordPress에서 제공하는 기본 기능을 사용하기 위해 <div> tag에 class를 지정하는 방식보다 shortcode를 사용하는 편이 더 낫다는 것을 알게 되었다. 그리고 UML 편집중에 preview를 볼 수 있도록 visual editor plugin도 추가 했다.

WPU를 활성하면 Visual Editor에 ‘UML’이라고 표시된 못생긴 버튼이 하나 추가되는데 이것을 눌러서 preview를 보면서 편집할 수도 있고, 간단한 것이라면 [[wpu] ~ [/wpu]] shortcode 사이에 PlantUML 문법을 직접 기술해서 작성할 수도 있다.

wpu_visual_editor_button

wpu_visual_editor_preview

다음은 shortcode로 변경한 PlantUML 예제이다.

  • Class diagram

    [wpu] scale 900 width
    Class01 <|– Class02
    Class03 *– Class04
    Class05 o– Class06
    Class07 .. Class08
    Class09 — Class10
    Class11 <|.. Class12
    Class13 –> Class14
    Class15 ..> Class16
    Class17 ..|> Class18
    Class19 <–* Class20[/wpu]
  • Sequence diagram

    [wpu]
    Alice -> Bob: Authentication Request
    Bob –> Alice: Authentication Response
    Alice -> Bob: Another authentication Request
    Alice <– Bob: another authentication Response
    [/wpu]

  • State diagram

    [wpu]
    [*] –> State1
    State1 –> [*]
    State1 : this is a string
    State1 : this is another string
    State1 -> State2
    State2 –> [*]
    [/wpu]

 

Plugin download URL :  https://bitbucket.org/litcoder/wpu/downloads/wpu_1.0.zip

WPU – WordPress에서 PlantUML 문법을 사용하기 위한 plugin

이 글을 읽기 전에!

WPU는 2016년 2월 배포된 1.0 version부터 shortcode를 사용하도록 변경되었습니다. 자세한 내용은 이 포스트(WPU version 1.0 release)를 참고 하세요.

 

PlantUML 자주 사용하시나요?

다양한 확장으로 유명한 이 tool에 대한 WordPress plugin이 없다는 사실은 좀 의아 합니다. PHP 해본 지도 오래됐고 처음 만들어 보는 WordPress plugin이라 시행착오도 많았지만 대략 처음에 생각했던 기능은 동작하니 이쯤해서 version 0.1을 release 하기로 했습니다.

Bitbuket에 공개 repository도 하나 만들고 WordPress에 쉽게 설치할 수 있도록 zip으로 묶은 버전도 올려두었습니다.

작명 센스가 영 엉망이어서 이름은 성의 없게 WPU(우뿌!?)로 지었습니다. WPU는 두 가지 종류의 PlantUML 동작 방식을 지원합니다. 사용하는 server에 Java와 Graphviz가 설치되어 있다면 외부의 도움 없이 SVG 형식의 image를 생성할 수 있고 이 방식은 unicode 처리를 비롯해 여러 면에서 좀 더 안정적 입니다.
하지만 만약 (저 처럼) 마음대로 조작할 수 없는 web hosting service를 사용하고 계신다면 PlantUML에서 제공하는 server에 data를 전송해서 image link를 이용하는 방식으로도 사용할 수 있습니다. 저는 첫번째 방식을 ‘local creation’ 두번째를 ‘web creation’라고 부릅니다. 기본 설정은 web creation 입니다.

Local creation으로 변경하고자 한다면 plantuml.jar를 download 받아서 접근가능한 위치에 두고 WpuDefs.php의 다음 부분을 편집해 주세요.

  • WPU_LOCAL_CREATOR를 TRUE로 변경
  • WPU_LOCAL_CREATOR_JAVA_PATH에 java 실행파일의 절대경로를 지정
    e.g) /usr/lib/jvm/jdk1.6.0_45/bin/java
  • WPU_LOCAL_CREATOR_PLANTUML_PATH에 plantuml.jar의 절대경로를 지정

다음은 PlantUML 문법을 사용한 예제 입니다.

  • Class diagram

    Version 1.0 부터는 shortcode를 사용하도록 변경되었습니다. (이 포스트 참고)

  • Sequence diagram

    Version 1.0 부터는 shortcode를 사용하도록 변경되었습니다. (이 포스트 참고)

  • State diagram

    Version 1.0 부터는 shortcode를 사용하도록 변경되었습니다. (이 포스트 참고)