워드프레스 설치 이후에 Nginx로 포워딩하는 방법
오라클 A1서버에 Docker Compose로 Wordpress와 MySQL을 설치하여 관리자 페이지까지는 접속이 되었습니다.
다만 이제 도메인과, SSL 설정을 하여야하는데 기존과 같은 방식으로는 NPM으로 작동하지가 않아서 뭔가 설정에 문제가 있나 싶어서 문의드려봅니다.
우선 Docker Compose 파일은 아래와 같습니다.
version: "3"
# Defines which compose version to use
services:
# Services line define which Docker images to run. In this case, it will be MySQL server and WordPress image.
db:
image: mysql:latest
platform: linux/arm64
# image: mysql:5.7 indicates the MySQL database container image from Docker Hub used in this installation.
restart: always
environment:
MYSQL_ROOT_PASSWORD:
MYSQL_DATABASE: wordpress
MYSQL_USER:
MYSQL_PASSWORD:
# Previous four lines define the main variables needed for the MySQL container to work: database, database username, database user password, and the MySQL root password.
wordpress:
depends_on:
- db
image: wordpress:latest
restart: always
# Restart line controls the restart mode, meaning if the container stops running for any reason, it will restart the process immediately.
ports:
- "8082:80"
# The previous line defines the port that the WordPress container will use. After successful installation, the full path will look like this: http://localhost:8000
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER:
WORDPRESS_DB_PASSWORD:
WORDPRESS_DB_NAME: wordpress
# Similar to MySQL image variables, the last four lines define the main variables needed for the WordPress container to work properly with the MySQL container.
volumes:
["./:/var/www/html"]
volumes:
mysql: {}
결국 저기서 중요한것은 포트를 8082로 열어준것인데 특이하게도, IP:8082 로 접속하면 IP:80으로 가버립니다.
그리고 duckdns도메인:8082 이렇게 하면 접속이 되는데요 (유일하게 접속되는 방법입니다.)
NPM에서 IP:8082 를 다른 웹애플리케이션과 비슷하게 SSL 설정을 해줬는데 어떻게해도 접속이 되지 않습니다.
워드프레스 관리자페이지에서 Wordpress Address, Site Address가 기본적으로
http:duckdns도메인:8082로 설정되어있던데, 여기서 설정을 건들여야하는것같은데 몇몇개를 바꿔버리니 관리자페이지도 접속 불가능한 상황이 발생해서 지금은 다시 삭제하고 도커로 재설치를 진행한 상태입니다.
지금까지 다른 웹애플리케이션들은 NPM에서 기존과 같은 방식으로 했을때 문제없이 진행되었는데 워드프레스가 왜 이렇게 문제를 발생을 일으키는지 이해하기힘드네요.
어디서 문제가 발생한걸까요?
oci 에서 설치해서 성공한 부분을 남겨봅니다.
compose
version: '3.5'
services:
wordpress:
image: wordpress:latest
restart: unless-stopped
container_name: wordpress
# ports:
# - 8080:80
environment:
- WORDPRESS_DB_HOST=wordpress-db
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=데이터베이스 폴더
- WORDPRESS_DB_NAME=wordpress
- TZ=Asia/Seoul
volumes:
- /data/wordpress/data:/var/www/html #자료 저장 위치 보통 /data 폴더 안에 넣어씁니다.
# networks: # docker 내부 ip 를 정의해줄 수 있습니다. 필요없을 듯 해서 주석처리
# default:
# ipv4_address: 172.18.0.120wordpress-db:
image: mysql:8
restart: unless-stopped
container_name: wordpress-db
environment:
- MYSQL_ROOT_PASSWORD=관리자 암호
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=위의 워드프레스가 접속할 암호
- TZ=Asia/Seoul
volumes:
- /data/wordpress/mysql:/var/lib/mysql # 동일합니다. 데이터를 /data 폴더에서 관리합니다.
# networks: # 이것역시 내부 아이피를 고정아이피로 정의해서 사용하고 있어서 우선 주석처리
# default:
# ipv4_address: 172.18.0.121#networks: # docker network 에 등록한 npm으로 같이 묶어주는 역활을 하는부분입니다.
# default:
# external:
# name: npm
우선 포테이너에서 위와 같이 설치를 하였습니다.
그리고 npm 설정에서.
domain names 에 접속할 도메인명
forward hostname 에 wordpress 포트는 80
ssl은 연결하고 체크는 하나도 안건드렸습니다.
참고 삼아서 남깁니다.
그리고 혹시 모르니 docker-compose --version 을 입력을 해서 버전을 확인해보세요.
1버전대면 지원이 끊어져서 2버전대로 설치를 다시 해야하더군요.. 이것때문에 워드프래스는 괜찮은데
mysql 설치가 엉망이 되어서 ghost 블로그라는것을 몇번을 설치를 했네요 ㅠㅠ;
cmt alert