우분투 서버
설치 분류

Docker compose로 워드프레스 편하게 설치하는 방법

컨텐츠 정보

  • 27,765 조회
  • 49 댓글
  • 0 추천
  • 목록

본문



들어가며


Wordpress(워드프레스)는 현재 전세계에서 가장 많이 쓰이는 CMS입니다.


php, mysql, 웹서버로 구성됩니다.


SSL 인증서 설정, 자동갱신 등록, ffmpeg와 redis 따로 설치 등등..


하나하나 설치하는데 시간과 노력이 많이 필요합니다. 


한번에 설치하면 어떨까요?


바로 도커로 가능합니다.


소스는 깃허브(링크)에 올려뒀습니다.



준비사항


자신의 도메인이 우분투 20.04 서버 또는 센토스8 서버를 가리키게 해야 됩니다.


도메인 뿐만 아니라, www.도메인, port.도메인, pma.도메인까지 가리키게 하는게 중요합니다. (phpmyadmin, portainer 접속용)


그리고 방화벽은 80, 443 포트를 열어주세요.



오라클 클라우드 iptables 방화벽 초기화화기


오라클 클라우드의 경우 iptables가 강력하게 깔려있습니다.


그래서 다 열어주고 시작하는 것이 편합니다.


어짜피 오라클 클라우드 웹 패널에서 관리가 가능하니깐 문제없습니다.



sudo iptables -F
sudo iptables -X
sudo netfilter-persistent save
sudo netfilter-persistent reload


위 내용을 한줄씩 넣어주면 완벽합니다.



설치하기


(1) Ubuntu 20.04 LTS



sudo apt update -y && sudo apt upgrade -y && sudo apt install curl git -y && sudo apt autoremove -y


위 명령어로 현재 우분투 패키지의 상태를 최신화하고, curl과 git을 설치하고, 필요없는 패키지를 삭제합니다.



위 명령어 한줄이면 됩니다.



(2) CentOS 8



sudo yum -y update && sudo yum install -y curl git


위 명령어로 현재 센토스8 패키지의 상태를 최신화하고, curl과 git을 설치하고, 필요없는 패키지를 삭제합니다.



위 명령어 한줄이면 됩니다.



도메인 주소, 이메일 주소, root DB 비번, DB유저, DB 비번, DB이름 등을 물어보는데 원하는대로 설정 가능합니다.


그후 자동으로 설치됩니다.


SSL 인증서 발급 및 자동 갱신 cron 작업이 되어 있고, ffmpeg도 php에 붙여서 움직이는 GIF 파일도 MP4로 바꿀 수 있습니다.


또한 redis-server와 php-redis 확장기능도 설치되어있어, W3 Total Cache 플러그인에 redis캐시 기능을 사용할 수 있습니다.



로컬이나 SSL 없이 설치하기


(1) Ubuntu 20.04 LTS users



sudo apt update -y && sudo apt upgrade -y && sudo apt install curl git -y && sudo apt autoremove -y


위 명령을 넣은 후



위 명령을 넣고 설치하면 됩니다.



(2) For Centos 8 users



sudo yum -y update && sudo yum install -y curl git


위 명령을 넣고



위 명령을 넣은 후 설치하면 됩니다.



(3) For Windows 10 WSL2 Ubuntu 20.04 LTS users


WSL2 Ubuntu 20.04 LTS와 docker를 윈도우10에 설치합니다.


https://www.wsgvet.com/ubuntu/160 , https://www.wsgvet.com/ubuntu/180



sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y


위 명령어를 넣은 후



위 명령어를 넣으면 됩니다.


처음에 Enter your domain (ex : mydomain.com or localhost) : 이렇게 나옵니다.


로컬에서 설치하기 때문에 localhost 를 넣으면 됩니다. 나머지는 원하는대로 설정할 수 있습니다.



워드프레스 설정하기


자신의 도메인 주소로 들어가면 워드프레스 설치화면이 나올 것입니다.


Database name : 직접 넣은 DB 명


Database username : 직접 넣은 DB 유저이름


Database Password : 직접 넣은 DB 비밀번호


Database Host : db


넣으면 됩니다.



Redis 캐시 설정하기


Redis 기능이 필요한 곳에


Host : redis


Port : 6379


위와 설정하면 Redis 캐시기능을 바로 쓸 수 있습니다.



인증메일 설정하기


구글 SMTP가 제일 편합니다.


https://wphowto.net/smtp-mailer-plugin-for-wordpress-1482


위 플러그인을 사용하면 됩니다.



phpmyadmin과 portainer


Phpmyadmin : https://pma.yourdomain.com


Portainer : https://port.yourdomain.com


위와 같은 형식의 주소로 들어가면 들어갈 수 있습니다.


portainer는 웹으로 도커 컨테이너를 관리할 수 있는 좋은 툴입니다.


Docker를 Web에서 관리하는 Portainer 설치방법


위 링크를 참조하세요.



도커 이미지 자동 업그레이드 등록


docker_upgrade.sh 파일에서 /your/path/to/wordpress/ 부분을 자신의 도커 폴더로 변경합니다.



chmod a+x docker_upgrade.sh


위와 같이 실행 가능하게 해줍니다.



echo "30 12 * * * /your/path/to/wordpress/docker_upgrade.sh >> /var/log/docker_upgrade_cron.log 2>&1" >> mycron && sudo crontab mycron && rm mycron


위 내용에서 /your/path/to/wordpress/ 부분을 자신의 도커 폴더로 변경 후 명령을 내려주면 crontab에 자동으로 들어갑니다.



기타 실행명령어


docker-compose.yml 파일이 있는 곳으로 가서



./dc start


위 명령어를 내리면 전체 도커 컨테이너가 시작됩니다.



./dc stop	


위 명령어를 내리면 전체 도커 컨테이너가 정지됩니다.



./dc update


위 명령어를 내리면 도커 이미지를 최신화하고, 재시작합니다.

관련자료

댓글 49 / 5 페이지

우성짱님의 댓글의 댓글

arm 버전이 가능하긴 한데요. 소스를 몇가지 바꿔야 합니다.

php 이미지인 fpm-alipine을 arm용으로 바꿔줘야하는데... 지금 자동화된 상황에서 추가로 바꾸려면 시간이 걸립니다.

궁그미님의 댓글

혹시 ssl 인증서는 언제 자동갱신되는지 알 수 있을까요?
아니면 별도로 명령어로 갱신을 해야하는지 궁금합니다.

우성짱님의 댓글의 댓글

매일 밤 11시에 자동으로 갱신을 시도합니다. 유효기간이 1달 남았을 때 자동으로 갱신되며, nginx 리로드되면서 적용됩니다.

궁그미님의 댓글

해당 프로그램 설치 중에 iptables fail이라는 메시지가 나오는데요. 이경우에는 어떻게 해야할까요?
Creating network "wordpress_default" with the default driver
ERROR: Failed to program FILTER chain: iptables failed: iptables --wait -I FORWA                      RD -o br-f065cbe8b898 -j DOCKER: iptables v1.8.4 (legacy): Couldn't load target                        `DOCKER':No such file or directory

요청쟁이님의 댓글

https://svrforum.com/cloud/319429
이 글보고 여기까지 찾아 왔는데 혹시 오라클 A1 서버에서 링크의 글 처럼 세팅 할 수 있도록 초보가 이해할 수준으로 가이드 부탁드려도 될까요?
전체 34 / 1 페이지
RSS

최근글


새댓글


알림 0