라즈베리파이 - CMS를 이용한 블로그 페이지 세팅
이번 실습에서는 라즈베리파이에 CMS를 설치하고 이를 기반으로 한 블로그 페이지를 세팅하는 실습을 진행하도록 하겠다. 우선 실습을 진행하기 전에 먼저 CMS에 대해서 간략하게 먼저 알아보고 진행하도록 하겠다.
CMS(Contents Management System)
컨텐츠(Contents)를 관리하는 시스템
CMS는 "Contents Management System"의 약자로 "컨텐츠를 관리하는 시스템"을 말한다.
1. 라즈베리파이 부팅 및 IP주소 찾기
계속 반복적으로 언급해서 지겨울 수 도 있지만 그만큼 중요한 과정이다. 라즈베리파이에 전원을 연결해서 부팅시킨 후 다음과 같이 ping 명령을 입력해서 라즈베리파이에 할당된 ip 주소를 알아내도록 하겠다.
ping (hostname).local |
(이전에 설정했었던 라즈베리파이.local의 형식으로 입력한 것이다. -> 각자 사용한 hostname에 따라서 해당부분은 달라진다.)
2. ssh 프로토콜을 이용하여 라즈베리파이에 접속
이 또한 많이 진행한 과정이다. 다음과 같이 입력 후 이전에 설정해둔 암호를 입력하여 접속을 진행해주도록 하자.
ssh pi@(ip-address) |
3. nginx 설치
웹서비스를 하기 위해서는 해당 기기에 서버프로그램(server deamon)을 설치해야 한다. 사실 해당단계는 이전 실습의 과정에서 이미 진행한 내용이다. 하지만 완전히 초기상태에서 세팅을 한다고 가정하고 동일하게 수행해보겠다. 이전 실습에서도 언급하였듯이 라즈베리파이 시스템에 무언가를 설치하거나 설정을 변경하기 위해서는 Super user 권한이 필요하다. 다음과 같이 다음의 명령어를 입력해서 Super user가 되도록 하자.
sudo su - |
다음으로 라즈베리파이에 nginx를 설치하기 전에 업데이트할 패키지의 상태를 확인해야 한다. 현재 라즈베리파이는 우리가 설치하려고 하는 nginx가 무엇인지 모르기 때문에 우선 현재 라즈베리파이가 사용하고 있는 운영체제 라즈비안에서 설치할 수 있는 패키지의 리스트를 불러온 뒤 그 중에서 nginx를 설치하는 개념이라고 생각하면 된다. 업데이트할 패키지의 상태를 확인할 때는 이전 실습 때 잠시 경험했듯이 다음 명령어를 입력하면 된다.
apt update |
다음과 같이 잠시 기다려주면 리스트 update를 완료하게 된다. 이제 nignx를 설치하면 된다. nginx를 설치하는 것은 다음의 명령어를 이용한다.
apt install nginx |
다음과 같이 해당 명령을 입력하면 설치가 진행된다. 현재 환경에서는 이전 실습 때문에 nginx가 이미 설치되어있으로 별도로 설치되는 내용이 없는 것을 확인할 수 있다.
nginx를 설치한 후에는 다음의 명령어를 입력해서 서비스가 재시작 될 수 있도록 한다.
service nginx restart |
4. PHP7.3 및 관련 모듈 설치
PHP
C언어 기반으로 만들어진 서버 측에서 실행되는 서버 사이트 스크립트 언어
여기서 말하는 PHP는 서버에서 사용되는 프로그래밍언어를 말하는 것으로서 HTML을 프로그래밍 적으로 생성해주고 데이터베이스와 상호작용 하면서 데이터를 저장하고 표현한다. 즉, PHP는 웹을 위해서 만들어진 언어라고 볼 수 있다. 이 언어를 설치해야 CMS가 동작할 환경을 구성해놓을 수 있기 때문에 PHP와 관련 모듈들을 설치하는 다음의 과정이 선행된다.
이번에는 해당 과정에 필요한 명령어들을 모두 한 번에 열거해보도록 하겠다. 열거된 순서대로 해당명령어를 입력하면 된다.
apt install software-properties-common |
||
apt update |
||
apt install php7.3-fpm php7.3-common php7.3-mbstring php7.3-xmlrpc php7.3- sqlite3 php7.3-soap php7.3-gd php7.3-xml php7.3-cli php7.3-curl php7.3-zip |
해당명령어들에 대한 설명은 현재는 하지않고 일단 넘어가도록 하겠다. 단, 해당명령어 실행 시의 모습들만 제시하도록 하겠다. (해당 명령어들이 가지는 의미와 사용 이유에 대한 내용은 차후에 다시 업로드 하도록 하겠다.)
apt install software-properties-common 명령어을 입력하면 다음과 같이 해당 명령어 수행 후에 차지할 디스크 공간 정보를 보여주고 해당 명령을 수행하겠냐고 물어본다. Y를 입력해서 해당 단계를 넘어가주면 본격적으로 설치과정이 진행된다.
이제 다음 명령어를 입력해서 설치할 수 있는 패키지 리스트들 가져오도록 하자.
apt update |
이제 다음 명령어를 입력해서 PHP와 관련 모듈들 설치를 진행한다. 타이핑 간에 실수를 범하지 않도록 잘 체크하기 바란다.
apt install php7.3-fpm php7.3-common php7.3-mbstring php7.3-xmlrpc php7.3- sqlite3 php7.3-soap php7.3-gd php7.3-xml php7.3-cli php7.3-curl php7.3-zip |
마찬가지로 다음과 같이 실행여부를 물어본다. Y를 입력해서 넘어가주도록 하자.
이전과 동일하게 다음과 같이 설치과정은 자동으로 진행된다. 기다려주면 된다.
5. 서버 세팅파일 생성 및 저장
해당 과정을 진행함에 있어서 다음 3가지 사항을 가정한다.
1. CMS로 세팅된 사이트를 서비스할 계정 = hjy2885
2. Domain = juyoungit.com
3. Document root = /home/hjy2885/html/blog
-> 해당 정보를 Client에게 전달받아서 서버관리자가 작업하는 상황임을 가정한다.
이제 서버 세팅파일을 생성해줘야 한다. 이전 실습 때 수행했던 것처럼 다음의 두 경로
/etc/nginx/sites-available |
||
/etc/nginx/sites-enabled |
에 각각 서버세팅파일, 세팅파일에 대한 링크 파일을 생성해주면 된다. 이번에 입력해야할 서버세팅파일 내용은 다음과 같다. 현재의 과정에서 세팅파일의 내용을 이해하려고 하지는 말자, 일단은 해당세팅파일을 생성해서 사용한다는 느낌으로 접근하자.
cd /etc/nginx/sites-available |
우선 서버세팅 파일이 위치해야하는 /etc/nginx/sites-available 경로에 이동해서 하도록 하자. 이동해서 ls 명령을 이용해서 저장된 파일들을 살펴보면 이전 실습에서 사용하면서 만들었던 세팅파일들이 저장된 모습을 확인할 수 있다.
이제 사용하고자 하는 도메인 명 juyoungit.com에 대한 세팅파일을 생성하도록 하자.
vim juyoungIt.com |
해당 내용을 입력할 때 주의할 점은 if를 사용하는 구문을 사용할 때 이전에 사용하는 프로그래밍 언어와 달리 if와 ( 사이에 "스페이스"를 추가해야한다. 스페이스를 추가하지 않으면 서비스 정상적으로 동작하니 해당 사항을 잘 기억하도록 하자.
이제 해당 경로로 이동해서 이전에 생성한 세팅파일의 링크파일을 생성해주도록 하자
/etc/nginx/sites-enabled |
ln -s /etc/nginx/sites-available/juyoungit.com juyoungit.com |
링크파일까지 생성을 마쳤다면 이제 다음의 명령을 입력해서 세팅이 제대로 되었는 지 확인해보도록 하자.
nginx -t |
마지막으로 nginx 서비스를 재시작 해주면 된다.
service nginx restart |
6. CMS 다운로드 및 적용
이제 드디어 CMS를 다운로드 해서 적용하는 단계이다. 그런데 어떤 CMS를 이용해야할까? 사실 일반적으로 사용하는 Wordpress와 같은 CMS들은 라즈베리파이 서버에서 운용하기에는 다소 무리가 있는 편이다. 메모리를 많이 차지하고 프로세서에 상당한 부담을 주기 때문이다.
그래서 라즈베리파이 서버에서도 비교적 쾌적하게 구동할 수 있는 CMS를 선택해서 사용해야 하는데 본 실습에서 우리는 "Batflat" 이라는 CMS를 사용할 것이다. 해당 CMS는 다음과 같이 오픈소스로 Github에 공개되어 있다.
https://github.com/sruupl/batflat
본 실습에서 Batflat을 사용하는 주된 이유는 다음과 같다.
1. 셋업, 사용과정, 설치가 다른 CMS에 비해서 매우 간단하다.
2. Database Engine을 사용하지 않아서 저사양 환경에서도 좋은 성능을 보여준다.
3. 여러가지 장치들에 대한 호환성이 좋다.
Batflat에 대한 부가적인 설명은 여기까지 하는 것으로 하고 다운로드 및 설치과정을 수행해보도록 하자.
우선 이전 단계까지 해서 CMS를 이용한 가상호스팅의 과정에서 서버관리자 root가 수행해야할 일은 모두 끝났다. 이제부터는 해당 웹사이트를 운영할 개인계정으로 이동해서 CMS 설치과정을 진행해야 한다. 이전 단계에서 세팅파일을 생성할 때 해당 서비스를 진행할 계정과 웹페이지의 root 디렉터리를 hjy2885로 설정할 것을 기억할 것이다.
이를 위해서 이전에 생성한 계정 hjy2885의 계정으로 접속을 진행하도록 하자.
그리고 이제 다음의 명령을 이용해서 Github에 업로드 되어있는 batflat을 다운로드하도록 하자. 여기서는 다음과 같이 명령어를 입력한다.
wget (https://github.com/sruupl/batflat/archive/master.zip - 다운로드할 파일의 주소) |
wget
http 프로토콜에 의한 웹주소로 파일을 읽어올 때 사용할 수 있는 툴 (이전 단계에서 common tool을 설치하면서 같이 설치된 것임)
이제 다운로드한 zip 파일을 압축해줘야 하는데 해당 파일에 대한 압축해제는 다음의 명령어를 사용한다.
unzip master.zip |
다음과 같이 master.zip 파일을 압축해제해서 batflat-master 디렉터리를 생성한 것을 확인할 수 있다. 이제 해당 디렉터리를 이전에 서버세팅파일에서 다뤘던 것처럼 /home/hjy2885/html/blog 위치의 루트디렉터리로 변경해야 한다. 즉, batflat-master 디렉터리 명을 blog로 변경해주면 된다.
디렉터리의 이름을 변경하는 것은 이전에 경험했던 것처럼 mv 명령을 이용해서 변경해주면 된다.
mv batflat-master blog |
이제 blog 디렉터리로 이동하도록 하자.
blog 디렉터리 내에는 다음 2개의 디렉터리를 추가로 생성해야 한다.
./tmp |
||
./admin/tmp |
생성하는 2개의 디렉터리 tmp와 admin/tmp는 CMS를 기반으로 서비스하는 블로그가 동작하면서 임시로 저장하는 파일들이 위치하는 곳이다. 그리고 마지막으로 이전에 생성한 2개의 디렉터리를 포함한 몇 개의 디렉터리의 사용권한을 변경해줘야 하는데 이는 다음의 명령어를 사용한다.
chmod -R 777 ./uploads ./inc/data ./admin/tmp ./tmp |
여기서 777은 외부에서 접속한 사용자가 글, 그림과 같은 파일들을 홈페이지에 업로드할 수 있는 권한을 의미한다. 위의 명령어에 제시되어 있는 4개의 디렉터리를 반드시 다음의 권한을 가져야 한다.(-R) 옵션도 빼먹지 말고 같이 적어주도록 하자
7. hosts 파일 변경
지금 실습에서 진행하고 있는 것도 가상호스트에 대한 내용이다. 마찬가지로 정식 도메인이 아닌 가짜 도메인을 사용하는 것이기 때문에 세팅 후 브라우져에서 해당 도메인으로 페이지에 정상적으로 접속하기 위해서는 hosts 파일을 수정해야 한다. 그렇다면 이제 잠시해당계정에서 로그아웃 후에 다시 터미널을 실행하자. 다음과 같이 hosts 파일의 내용수정을 위해서 Super User 권한을 획득해야 한다. 다음과 같이 입력해서 권한을 획득하자.
sudo su - |
다음과 같이 내용을 입력한 후 저장해주면 hosts 파일 수정이 마무리된다.
8. 사이트 연결 테스트 및 관리자 페이지 접속
자 이제 정상적으로 서비스가 되는 지 해당 주소로 접속해보도록 하자. 브라우져로 이동해서 해당 주소를 입력하면 다음과 같이 blatfalt이 정상적으로 서비스하고 있는 모습을 확인할 수 있다.
다음의 batflat에서 기본으로 설정되어 있는 템플릿이며, 사용자가 원하는 데로 수정할 수 있다. 그런데 이전 실습에서는 페이지에서 보이는 부분을 수정하기 위해서는 해당 디렉터리로 이동해서 관련 파일을 열고 소스 단위로 수정을 해주어야 하는 번거로움이 있었는데 CMS를 설치했기 때문에 관리자 페이지로 접속해서 이러한 수고를 줄일 수 있다. 그렇다면 관리자페이지는 어떻게 접속할 수 있을까? 관리자 페이지는 다음의 형식으로 주소를 입력해서 접속할 수 있다.
juyoungit.com/admin |
그렇다. 세팅한 domain 명.com 뒤에 /admin을 추가해주면 된다. 다음과 같은 형식으로 주소를 입력해서 접속하면 다음과 같이 ID 와 PW를 입력하라는 창이 나온다.
각각에 대한 초기값은 모두 admin이며 다음과 같이 각 항목에 내용을 기입하면
다음과같이 관리자페이지로 접속이 이루어진다. 이제 해당 관리자 페이지 부분에서 페이지와 관련된 많은 요소들을 변경하고 설정하는 것이 가능하다. 각 부분 별 내용 수정이 어떤 방식으로 이루어지는 지는 다음 글을 통해서 다루는 것으로 하겠다.
이번 실습에서는 마지막으로 블로그 페이지에 새로운 글을 추가해보는 것으로 마무리 하도록 하겠다. 다음과 같이 관리자페이지 좌측 바에서 확인할 수 있는 blog 항목에서 "Add new"를 선택한다.
그렇게 되면 다음과 같이 우리에게 아주 친숙하게 블로그에 글을 기록하는 관련 작업을 GUI 형식으로 보여준다.
단순 테스트 목적으로 기록하는 것이기 때문에 다음과 같이 간단하게 내용을 구성한 후 우측부분을 잘 살펴보면 다음과 같은 항목 부분을 확인할 수 있다. 여기서 중요한 점은 글쓰기를 마치고 이제 해당내용을 블로그로 게시하고 싶은 경우 "status" 항목에 대한 내용을 Draft에서 Published로 변경해야 한다. Draft는 나중에 글을 이어서 기록할 수 있도록 해주는 임시저장의 기능이고, 제대로 블로그에 게시하기 위해서는 status를 Published를 기록할 수 있도록 하자
그리고 마지막으로 화면의 하단에 있는 save 버튼을 눌러주면 입력한내용이 저정된다. 다음과 같이 성공적으로 저정되었다는 메시지 또한 확인할 수 있을 것이다.
이것으로 이번 편에 대한 실습을 마치도록 하겠다. 다음 글에서는 이 CMS Batflatd을 이용해서 좀 더 다양한 활용과 수정 등의 실습을 진행하도록 하겠다.
'Web Basic > Raspberry PI' 카테고리의 다른 글
System Administration & mariadb setup (0) | 2021.02.02 |
---|---|
라즈베리파이 - Batflat의 관리자 페이지 사용법 (0) | 2021.02.01 |
라즈베리파이 - 가상 호스트 추가로 세팅 (0) | 2021.01.30 |
라즈베리파이 - 가상호스트 세팅하기 (0) | 2021.01.29 |
라즈베리파이 - 호스트 명 변경하기 (0) | 2021.01.28 |
댓글
이 글 공유하기
다른 글
-
System Administration & mariadb setup
System Administration & mariadb setup
2021.02.02 -
라즈베리파이 - Batflat의 관리자 페이지 사용법
라즈베리파이 - Batflat의 관리자 페이지 사용법
2021.02.01 -
라즈베리파이 - 가상 호스트 추가로 세팅
라즈베리파이 - 가상 호스트 추가로 세팅
2021.01.30 -
라즈베리파이 - 가상호스트 세팅하기
라즈베리파이 - 가상호스트 세팅하기
2021.01.29