라즈베리파이로 NAS 만들기17 – OMV6에 WordPress 설치 방법 – 성공비결 및 시행착오

라즈베리파이로 NAS 만들기17 – OMV6에 WordPress 설치 방법 – 성공비결 및 시행착오

앞에서 웹이 서버용 프로그램으로 Nginx를 OMV6가 설치된 라즈베리 파이에 설치하는 방법을 소개한 바 있다. 그런데 Nginx는 우리가 작성한 웹페이지를 인터넷에서 웹상으로 볼 수 있게 해주는 프로그램이며, 이렇게 웹페이지에 HTML 등의 내용물을 올리려면 웹페이지 자체를 만들 방법이 필요해진다.

워드프레스에 대한 이해를 돕기 위하여, 이러한 웹페이지 제작 수단에 대한 내가 이해하는 바를 먼저 간단히 소개한다. 과거 인터넷 초기에는, 나모 웹 에디터나 드림 위버같이 HTML 코드를 직접 편집하는 웹에디터가 이러한 수단으로 사용되었으나, 기술 발전과 사용자 범위의 확대로 인해 일일이 HTML 코딩을 모르더라도 웹을 편집할 수 있고, 좀 더 다양한 문서와 정보들을 체계적으로 다룰 필요가 증가하게 되었다.

이러한 필요에 따라, 기존 Web editor 대신 코딩을 잘 모르더라도, 템플릿이나, 메뉴 선택 등의 방식으로 웹페이지를 만드는 것을 쉽게 만들어주는 Web Builder라는 개념이 나오게 되었고, 이러한 개념은 추가로 체계화되고 코딩에 대해 거의 모르더라도 대시보드 등을 이용하여 자신의 컨텐츠를 보다 쉽고 빠르게, 체계적으로 관리할 수 있게 해주는 CMS (Content Management System, 저작물 관리프로그램)라는 개념으로 발전하게 된다. CMS를 Web Builder의 진화된 버전으로 보는 시각도, 또한 두 가지 도구는 세부면에서 좀 다른 제품이라는 견해도 있으나, 중요한 것은 두 가지 도구 모두 Coding을 모르더라도 빠르고 쉽게 웹페이지를 만드는 도구라는 점이다.

최근에 새로 만들어지는 인터넷 웹페이지의 대다수는 이러한 CMS 도구를 이용하여 제작되는 것으로 알려지고 있는데, 그 종류는 대단히 많지만, 대표적인 CMS 도구로는 WordPress, 드루팔(Drupal), 줌라(Joomla), 제로보드 (그 외에도 다수) 등이 알려져 있지만, WordPress가 과반 이상의 점유율을 보이는 것으로 알려져 있다.

이번 글에서는 OMV6 (Openmediavault)가 설치된 라즈베리 파이에 도커 이미지를 이용하여, WordPress를 설치하는 과정과, 라즈베리파이에 설치한 OMV에 WordPress를 설치하면서 내가 경험했던 시행착오를 소개한다.

OMV6가 설치된 라즈베리에 WordPress를 설치하는 과정은 다음과 같다.

먼저 OMV6에 Docker와 Portainer를 설치하고, Portainer에 로그인 한다.

– 이 부분은 필요시 다음을 참조한다 https://blog.naver.com/mythee1/223081516290

Portainer의 App Template 가 보면 다음과 같이 WordPress 용 Template가 있다. 이 Template의 오른쪽 부분에 있는 “Copy as Custom”을 선택한다.

그러면 다음과 같은 화면이 열린다. 여기에 Container 이름(예:wordpress1)을 영문 소문자로 넣어주고, 간단한 설명(예:myblog)을 표기해 준다.

그리고, 위의 code 내용 중에서 다음 부분을 수정해 준다. (내가 엄청 헤메었던 시행착오 부분들이다.)

1) mysql 부분을 image: mysql/mysql-server:8.0 로 변경해 준다.

WordPress는 콘텐츠 관리를 위해 DB 프로그램이랑 연계해서 사용하는데, 주로 mySQL이나 MariaDB 프로그램과 같이 사용되는 게 일반적이다. 그런데 Portainer의 원래 template에 있었던 image: mysql:5.7 명령이 x86에서는 정상적으로 작동하지만, arm은 지원하지 않아 deploy 시 error가 발생하는 문제가 있다. mySQL에서는 server:8.0이 arm을 지원하기 때문에, 해당 명령을 대체하는 것이며, mySQL 대신 mariaDB를 이용할 수도 있다 – 글 끝부분 소개 참조.

2) MYSQL_DATABASE: wordpress 부분은 변경하지 않고 그냥 둔다.

이 부분을 변경하는 경우, WordPress가 정상적으로 설치되더라도, 웹 접속 시 “Error establighing database connection” 에러가 발생한다.

3) username과 password를 원하는 대로 지정하되, 윗부분과 아랫부분에 기재하는 값이 일치해야 한다.

4) 혹시 SQL DB로 계속 에러가 나는 경우에는, SQL DB대신 본글 뒷부분에 소개된 Mari-DB를 이용하여 설치한다.

만일, username을 kongyi라고 지정하고, password를 kong2021로 지정한다면 올바른 code는 다음과 같이 된다.

version: '2'
services:
db:
image: mysql/mysql-server:8.0
volumes:
- db_data:/var/lib/mysql
     restart: always
     environment:
MYSQL_ROOT_PASSWORD: kongyi2021
       MYSQL_DATABASE: wordpress
       MYSQL_USER: kongyi
       MYSQL_PASSWORD: kongyi2021

   wordpress:
image: wordpress:latest
     ports:
- 80
restart: always
     environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: kongyi
       WORDPRESS_DB_PASSWORD: kongyi2021

volumes:
db_data:

코드에 적절히 username과 password, DB 이름 지정이 끝나면 다음의 “Create custom template”를 클릭해 준다.

그러면 잠시 후 녹색의 Success.. 표시가 나타난 후, 다음과 같은 화면으로 변경되고, 정상적으로 내가 지정한 내용을 반영한 Custom Template가 만들어지게 된다. 이 상태에서 다음과 같이 만들어진 스택을 선택하여 클릭해 준다.

그러면 다음 화면으로 변경되며, 여기서 하단부에 있는 Deploy 명령을 실행해 준다.

그러면 다시 Success 표시와 함께 다음과 같이 Stack 항목에 지정한 이름으로 새로운 Stack이 만들어지는 것을 확인할 수 있다.

그리고 동시에 Container list를 살펴보면, 다음과 같이 Stack 생성 시간과 동일한 시간대에 wordpress가 설치된 것을 확인할 수 있다.

설치된 WordPress의 Container 포트 번호를 눌러서 웹으로 접속해 보면, 다음과 같이 정상적으로 WordPress 페이지가 열리는 것을 확인할 수가 있다.

이렇게 OMV6가 설치된 라즈베리파이에 WordPress와 MariaDB를 설치하는 과정을 소개하였다.

(참고사항)

– mySQL 대신 MariaDB를 사용하는 경우에는 다음과 같은 Code로 바꾸어주면 된다.

(username을 kongyi로, password를 kong1234 로 지정한다고 가정하는 경우)

version: '2.1'
services:
wordpress:
image: wordpress
    restart: always
    ports:
- :80
environment:
PUID: 1000
PGID: 100
WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: kongyi
      WORDPRESS_DB_PASSWORD: kongyi1234
      WORDPRESS_DB_NAME: wordpress
    volumes:
- /PATH TO FOLDER/wordpress:/var/www/html
    links:
- db:db
  db:
image: ghcr.io/linuxserver/mariadb
    environment:
- PUID=1000
- PGID=100
- MYSQL_ROOT_PASSWORD=kongyi1234
      - TZ=Asia/Seoul
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=kongyi (위와 일치해야 함)
- MYSQL_PASSWORD=kongyi1234 (위와 일치해야 함)
volumes:
- /PATH TO FOLDER/Wordpressdb:/config
    ports:
- 3333:3306
restart: always
volumes:
wordpress:
db: