라즈베리파이로 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://kongyine.com/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:

​