웹 프로그램을 웹 스테이션에서 도커로 설치하는 이유
phpMyAdmin, WordPress(워드프레스), Plex, PHP, MediaWiki 등을 패키지 센터에서 설치하려면 최신버전이 아닐 수도 있습니다. 같은 패키지를 여러 개 설치할 수 없습니다.
컨테이너 매니저에서 설치하면 컨테이너 설정, 역방향 프락시 설정, 마운트 설정, APM 설정 등이 어렵고 복잡합니다.
- 웹스테이션을 통해 서비스를 설치하면 최신 버전을 자동으로 쉽게 설치할 수 있습니다.😍
- 같은 서비스를 여러개 설치하고 서브 도메인이나 포트를 할당할 수 있습니다.
- 파일 관리자에서 폴더 권한 설정을 하면 웹페이지에서 워드프레스 업그레이드와 플러그인 업데이트가 가능합니다.
- 웹스테이션의 Nginx 웹서버와 손실되지 않는 사용자 설정(.conf)을 사용할 수 있습니다.
웹 스테이션
웹 포털 메뉴에서 생성 버튼을 누릅니다.
웹 서비스 포털을 선택합니다.
서비스 항목에서 새 웹 서비스 만들기를 선택합니다. 여기서는 워드프레스를 설치해 봅니다.
컨테이너화된 스크립트 언어 웹사이트를 선택 후, 서비스와 버전을 선택합니다. 현재 6.5가 최신버전입니다.
이름은 구분하기 쉬운 별명으로 지정합니다. 문서 루트는 워드프레스가 설치될 경로입니다. /web/이 아닌 다른 위치에 설치하는 것이 관리하기 좋습니다.(예: /Docker/)
HTTP 백엔드 서버를 보면 Nginx가 보이는데, 이 도커 컨테이너는 웹스테이션의 서버를 사용하는 것을 알 수 있습니다.
다시 웹서비스 포털 설정으로 돌아오면
포털 유형이 세 가지가 있습니다.
- 이름 기반: NAS에 연결된 도메인으로 접속할 수 있습니다. 도메인 관리 사이트에서 CNAME을 설정하면 서브 도메인으로 접속할 수 있습니다. 예) word.mydns.com
- 포트 기반: NAS에 연결된 도메인이나 IP 뒤에 포트 번호를 붙여서 접속할 수 있습니다. 예) mydns.com:8888
- 별칭 포털: NAS에 연결된 도메인이나 IP 뒤에 경로를 붙여서 접속할 수 있습니다. 예) mydns.com/word
위 설정은 각각 만들어서 같은 파일을 여러 경로로 동시에 접속할 수 있습니다. 웹 포털과 웹 서비스는 별개로 구성되기 때문입니다.
도커
설치가 끝나면 아래처럼 3개의 컨테이너가 설치됩니다. 프로젝트에서 관리됩니다.
설치 후 데이터베이스는 /web_packages/docker/mariadb/ 경로에 서비스별로 저장됩니다.
사용자정의 설정입니다.
네트워크 그룹
mariadb, phpmyadmin 컨테이너에서 DB를 관리하려면 네트워크에서 컨테이너들을 같은 그룹으로 설정합니다.
위와 같이 DB, PMA 등이 있는 네트워크에 프로젝트 컨테이너들을 추가하였습니다. _default는 웹 접근용 네트워크입니다.
컨테이너 정리
데이터베이스를 이전에 설치한 mariadb 컨테이너에 연결하는 설정입니다.
프로젝트에서 각 서비스의 YAML 구성 탭으로 이동 후, database 접속 계정 설정과 database의 건강검사 코드를 삭제하면 됩니다.
그다음 시작점 버튼이 아닌, 작업 버튼의 다시 시작을 선택해야 실행이 됩니다.
웹 서비스 설치 중 DB 호스트 설정값에 DB 컨테이너의 IP 주소를 입력합니다. 이미 설치되었다면 wp-config.php 파일을 편집기로 열고 DB_HOST 상수 정의 코드를 찾아서 DB 컨테이너의 IP 주소를 입력하면 됩니다.
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );
define( 'DB_HOST', '172.17.0.2' );
웹 업데이트
웹페이지에서 워드프레스, 테마, 플러그인을 업데이트 하려면 wp-content 폴더에 쓰기 권한을 추가해야합니다. 파일 스테이션에서 wp-content 폴더의 권한을 설정합니다.