[WP] 워드프레스 도메인 변경 쉽게 하는 방법

운영 중인 워드프레스 웹사이트를 다른 서버에 옮기거나 복사를 해야하는 경우 도메인을 변경하게 되는 일이 생깁니다.

기존에는 워드프레스 DB의wp_options 테이블에서 siteurl과 home 필드를 변경할 도메인으로 수정하고 페이지마다 코딩된 소스에서 도메인을 일일히 확인해 수정했습니다.

더 간단한 방법이 없을까하고 코덱스를 검색해보니 역시 간단한 방법이 있었습니다.

  1. wp-config.php 파일 상단 부분에 상수(define) 추가

     
  2. /wp-content/themes/사용테마/functions.php 파일 상단 부분에 상수(define) 추가

     

이것으로 도메인 변경 작업은 끝입니다. 위 두 파일을 수정했다면 해당 도메인으로 접속을 해봅니다. 관리자에서도 도메인이 변경되었는지 확인해봅니다.

define으로 정의한 WP_HOME, WP_SITEURL, siteurl, home 상수가 어떻게 사용되는지 간단히 알아보니 위 상수가 정의되어 있다면 DB에 정의된 siteurl과 home 값보다 우선적으로 적용을 합니다.

즉, 실제 DB에서 siteurl과 home 값이 변경이 일어나진 않습니다. DB보다 우선적으로 설정 파일 내 정의된 상수를 먼저 읽어오도록 처리가 되어있는듯 합니다.

[WP] FTP 정보 입력 없이 자동 업데이트 시키는 방법

워드프레스에서 버전을 올리거나 플러그인을 업데이트 하는 경우 FTP 혹은 SFTP 접속정보를 매번 입력하게 되어 있습니다.
하지만 좀 더 편하게 업데이트 버튼만 누르면 FTP 정보 입력없이 바로 설치가 되도록 할 수 있는 간단한 방법이 있습니다.

설치된 워드프레스 디렉토리의 소유자를 ftp 접속계정에서 웹서버 계정으로 변경하는 것입니다.
웹서버를 아파치(Apache)를 사용하느냐 엔진엑스(nginx)를 사용하느냐에 따라서 소유자명이 다릅니다.

설치된 웹서버가 아파치인 경우

 

설치된 웹서버가 엔진엑스인 경우

 

이는 웹서버를 패키지로 설치한 경우의 예를 들었으며 웹서버 계정은 다를 수 있으니 참고해주세요.

[WP] xmlrpc.php 취약점을 이용한 DDOS 공격 대응 방법

최근까지 이 블로그가 백지 상태가 되는 경우가 있었습니다. 처음엔 대수롭지 않게 웹서버를 재시작 시키곤 했는데 이 증상이 시간이 갈 수록 자주 발생하게 되었습니다. 이틀에 한번 꼴로 먹통이 되어버리는 상황까지 오게되어 원인을 찾게 됐습니다.

아파치 로그를 살펴본 결과 1~2분 단위로 같은 IP들을 발견하게 되었고 이들의 공통점은 워드프레스 최상단 경로에 위치한 xmlrpc.php 파일을 접근하고 있다는 점이었습니다.

xmlrpc

 

(현재는 접근이 차단되어 Error를 발생시키고 있는 모습)

동일 사례를 찾아보니 이 현상은 워드프레스의 취약점 중 하나인 xmlrpc.php를 이용해 DDOS 공격의 경유지로 활용하는 행위였습니다. 다시말해 블로그 자체가 DDOS 공격을 받는 것이 아닌 다른 사이트들을 DDOS 공격을 하기위해 이용하는 도구로 사용된다는 것입니다.

이 문제는 예전부터 공론화되어왔다고 합니다. 국내에서는 워드프레스를 기반으로 한 웹사이트가 많지 않지만 전세계를 기준으로 봤을때는 얘기가 달라집니다. 전세계 약 20%의 웹사이트가 워드프레스로 제작되어 운영되고 있다는 통계가 있습니다. 이 말의 의미는 동일한 형태의 공격에 대한 위험이 전세계 약 20%의 웹사이트에 동일하게 노출되고 있다는 점입니다.

다행히 워드프레스 플러그인으로 간단하게 해결 가능합니다. 이 플러그인들은 원천적으로 지속적인 웹 접속 자체를 차단할 수는 없지만 엑세스를 하지 못하도록 비활성화 하는 방법을 사용하고 있습니다.

xmlrpc만 입력해서 검색해봐도 disable xmlrpc, block xmlrpc 등등 대응이 가능한 플로그인들이 검색됩니다. 플러그인을 설치해주는 정도만으로도 이러한 공격 경유지로의 이용은 막을 수 있습니다.

[WordPress] Facebook Social plugin ‘OAuthException’ 오류 해결 방법

facebook-wordpress

누가 워드프레스면 10분 완성이라고 노래를 부르던가.

워드프레스의 페이스북 플러그인을 통해 포스팅 글을 자동으로 Publish 시켜 사용하고 있던 중 어느 날 아래와 같은 에러 메세지를 뿜어내며 페이스북에 게시가 되지 않았습니다.

og:type of ‘website’. The property ‘article’ requires an object of og:type ‘article’. “,”type”:”OAuthException”

이건 무슨 호랑말코같은 소리인지 구글느님에게 도움을 청해봐도 명쾌한 답변을 찾기 힘들었습니다. 설상가상 국내 검색자료는 거의 전무한 수준..

OAuthException이라면 Open Graph에 문제가 있는 것으로 추측(O로 시작해서?)이 되어 워드프레스 페북 플러그인 설정과 페이스북 App 설정을 보기 시작했습니다. 우선 워드프레스 설정 페이지에는 explanation for permissions 항목에 설정이 안되어있다는 문구와 함께 빨간색으로 저를 압박하더군요. 그래서 페이스북 App 설정 페이지로 이동하였습니다.

역시 explanation for permissions 란이 텅 비어있더군요. (그럼 여태 어떻게 됐던거지. 업데이트 되면서 정책이 바뀐건지..) 이제 문제를 찾았습니다. 찾았… 근데 여기에 뭘 넣으라는거야 ㅠㅠ

이것도 구글느님에게 도움을 청했으나 혹시나가 역시나라고 명쾌한 답변은 찾아 볼 수 없었습니다. 그러던 중 누군가 차갑게 던진 URL하나가 눈에 들어왔습니다. 페북 permission에 대한 레퍼런스 URL!!

https://developers.facebook.com/docs/reference/login/
후광이 비추는 이 영롱한 URL

기대를 품고 봤습니다. 역시나 기대를 저버리지 않고 친절하게 설명이 되어있었습니다. 알아듣지도 못하는 영문페이지에서 본능적으로 Open Graph Permissions 클릭!

이곳엔 제가 찾던 것이 있었습니다. 친절하게도 “얘네 중에 맘에 드는 아이로 쓰게나”
기분 좋게 publish_actions에 커서를 대고 컨트롤 씨! 그리고 explanation for permissions란에 컨트롤 브이!

다시 워드프레스 플러그인 설정 페이지로 돌아오니 빨간 경고는 사라지고 저장시킨 publish_actions 명령이 나옵니다.
그리고 다시 글을 작성해서 올리니 정상적으로 페북에 글이 등록되었습니다!