워드프레스 서버 설치 / 이전

wordpress-bg-medblue

얼마 전까지만 해도 DigitalOcean에서 가장 싼 VPS를 사용하다가 어제 vultr로 옮겼다. 이유는 간단한데 깃허브 대학생 교육지원에서 받은 디오 크레딧이 다 떨어졌기 때문! 어차피 돈 내고 쓸 상황이 됐으니 가장 가까운 서버가 싱가폴인 디오보다는 일본 리전이 있는 vultr가 유리했다. 거기에 별거 아니지만 가장 싼 인스턴스 기준으로 램 용량도 조금 많고, 스냅샷 기능도 아직 공짜니까.

거기에, 요즘 텐서플로우 공부를 하면서 환경세팅을 도커로 구성하니 환경세팅이라고 부르기 민망할 정도로 쉽게 구축할 수 있더라고! 그래서 당연히 개인 블로그계의 메이저인 워드프레스도 관련된 도커이미지가 있을 거라 생각했고, 그 예상이 맞았다! 하지만 도커를 적당히 다룰 줄 아는 것을 전제로 한 문서가 많아서 짤막하게 나 자신을 위해 문서화 해볼까 한다.


기존 워드프레스 백업

All-in-one WP Migration 플러그인을 설치하고 export > file 로 다운받아 놓는다. 만약에 기존에 있던 워드프레스가 없다면 이 단계는 건너뛰자.

서버 설정

아무리 도커가 대부분의 설정을 해준다고 하더리도 호스트로 사용할 서버의 설정까지 불필요해지는 것은 아니다. 나는 우분투를 너무너무너무 좋아하니까 우분투 16.04를 기준으로 설명함!

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo reboot
  1. 일단 우분투를 최신 상태로 업데이트하자. 마음놓고 서버를 업데이트하고 리붓할 수 있는 처음이자 마지막 순간이 지금이다. 귀찮더라도 한 번 해주자.

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04
2. 그러고 기본적인 위 링크를 따라서 우분투 기본 설정을 마친다.


https://docs.docker.com/engine/installation/linux/ubuntu/
3. 이후에는 도커 공식사이트에서 우분투에 도커를 설치하는 방법을 따라하자. 만약에 14.04로 이 가이드를 따라오고 있다면 ‘Recommended extra packages for Trusty 14.04’ 도 잊지말고 따라가자. 하지만 난 쿨-한 16.04니까 무시하고 ‘Install Docker’ 부터 가이드를 따랐다.


http://knight76.tistory.com/entry/docker-wordpress-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95
4. 그 이후 워드프레스 도커 설정은 위 블로그의 설명을 따른다. 유의할 점이 몇 가지 있는데, 위 설명은 localhost:8080으로 접속하는 것을 전제로 쓰여져있으니, 실제 프로덕션 환경을 세팅하고 있는 우리는 호스트와 컨테이너의 포트를 연결할 때 80:80으로 하는 것을 추천한다. + 2017년 2월 22일 기준으로 mysql:5.7.17 이 무난해 보이는 mysql 버전이었으니 참고.

혹시 위 블로그가 문을 닫으면 어쩌나 하는 불안감에 (종종 그런 일이 있다)

sudo docker run --restart=always \
  --name wordpressdb \
  -e MYSQL_ROOT_PASSWORD=123 \
  -e MYSQL_DATABASE=wordpress \
  -d mysql:5.7.17
sudo docker run --restart=always \
  -e WORDPRESS_DB_PASSWORD=123 \
  -d --name wordpress \
  --link wordpressdb:mysql \
  -p 80:80 wordpress

이후에는 브라우저로 서버아이피로 접속해서 워드프레스 초기 세팅을 마무리하자. 이메일과 비밀번호는 이전 서버에서 쓰던 것을 그대로 사용하는 것을 추천한다. (마이그레이션을 한 뒤에 어떤 비번과 아이디를 쓰더라도 상관 없도록!)

이후에는 플러그인에서 다시 All-in-one WP Migration 플러그인을 설치해서 이번엔 import 로 복구한다.

나의 경우에는 잘 복구되었다는 메세지와 함께 로그인이 튕겼다. 다시 로그인해서 플러그인과 테마 중에 업데이트 해야하는 것이 있으면 업데이트 하도록 하자.

이제 settings > general에 들어가서 http://아이피주소를 http://나의도메인 또는 https://나의도메인으로 바꿔주고.

sudo docker exec -it wordpress /bin/bash 로 워드프레스 컨테이너에 접속해서 /usr/local/etc/php/conf.d/uploads.ini 파일을 새로 만들어 다음 내용을 넣는다. 파일 업로드 제한을 높여주는 설정이다.

file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

이렇게 바꿔준 뒤에 service apache2 restart를 쳐주면 도커 컨테이너에서 팅기게 된다. 이유는 잘 모르겠음. (컨테이너가 끊기진 않음) 이후에는 사진파일의 크기가 크더라도 잘 업로드 되는 것을 확인할 수 있다.


여담으로,

나는 포트를 티스토리 블로그 설명 그대로 8080포트로 열었는데, 바꿔주기가 귀찮아서 nginx 설정을 몇 개 만져줬다. nginx clien_max_body_size도 적당히 열어주고, https도 쓰고 있으니 그거 리다이렉트도 해주고, location / 에 들어오는 녀석들 8080으로 프록시 걸어주는 것이 그것. 80포트로 컨테이너 딴다면 도커 호스트에서 따로 포트를 파줘야하는지는 모르겠다. 어차피 이렇게 돌려도 CPU Usage가 5%를 넘기 힘들단 말이야? 막 써야징~

Leave a Reply