글 작성자: juyoungit

이번에는 라즈베리파이 서버에 "wordpress" CMS를 설치해서 웹서비스를 진행하는 실습을 진행하도록 하겠습니다.

이전에 CMS관련 실습을 진행하면서 wordpress에 대해서 언급했던 적이 있습니다. wordpress는 전세계에서 가장 대표적인 CMS로서 LAMP또는 LEMP에서 동작합니다. 여기서 말하는 LAMP, LEMP의 의미는 다음과 같습니다.

 

  1. LAMP = Linux + Apache + MySQL + PHP
  2. LEMP(=LNMP) = Linux + Nginx + MariaDB + PHP

다음과 같이 CMS가 동작하는 환경에 대한 내용입니다. 현재 우리가 실습을 진행하는 환경은 LEMP에 해당하는 환경이므로 별다른 추가적인 세팅이 필요없이 wordpress를 설치하여 사용할 수 있습니다. 이전에 라즈베리파이서버에서 일반적인 CMS를 운영하기에는 다소 무겁다고 언급했었지만 그렇다고 불가능한 것은 아닙니다. 이번 실습에서는 wordpress를 기반으로 웹사이트를 구현하는 실습을 경험해보겠습니다.

​우선 wordpress를 기반으로 웹서비스를 제공한 계정을 새로 생성해서 해당계정에 DB 관련 세팅까지 마친 후 wordpress를 설치하는 것으로 하겠습니다. 우선 라즈베리파이에 추가적으로 한 개의 계정을 더 생성하겠습니다. 해당 단계의 내용은 이전 실습들에서 모두 다룬 내용들이지만 관련 절차를 복습한다는 의미에서 계정을 생성하는 부분부터 차근차근 실습을 진행해나가도록 하겠습니다.

우선 pi 계정에 접속해서 root 권한을 획득합니다.

그리고 useradd와 passwd 명령어를 이용해서 user 정보를 추가합니다.

wp_hjy라는 계정을 새롭게 생성하였습니다. 이전에도 강조했지만 useradd 할때 꼭 -m 옵션을 추가해서 해당 계정에 대한 저장소가 할당될 수 있도록 해줘야 합니다. 이제 웹페이지를 서비스하기 위한 서버세팅파일을 생성해야 합니다. 지금까지 실습해 왔던 것처럼

/etc/nginx/sites-available 에 세팅파일을 만들고 /etc/nginx/sites-enabled 를 생성해야 합니다.

세팅파일을 생성하기 전, 해당 위치에 세팅파일을 추가하게 됩니다.

세팅파일의 내용을 다음과 같이 입력합니다.

server{
    listen 80;
    listen [::]:80;

    server_name wp_juyoungit.com;

    root /home/wp_hjy/html;
    index index.html index.php;
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

세팅파일이 정상적으로 추가된 모습

이제 다음으로 링크파일을 생성해줘야 합니다. /etc/nginx/sites-enabled 경로에 방금 만든 세팅파일의 링크를 만들어 주면 됩니다. sites-enabled에 세팅파일이 위치해야 정상적으로 nginx가 웹서비스를 진행할 수 있으며 세팅파일이 아닌 링크파일을 생성하는 이유는 서버관리자 측면에서 각 사이트에 대한 관리를 효율적으로 하기 위함입니다.

링크파일 생성 전
링크파일 생성 후

다음과 같이 링크파일을 생성하였다면 nginx의 세팅이 제대로 이루어졌는 지 확인해야 합니다. 이전단계에서 만든 세팅파일이 문법적인 오류를 포함하고 있거나 링크파일에 대한 경로가 잘못지정된 경우 nginx -t 명령을 통해서 확인할 수 있으므로 필수적으로 거치는 과정입니다.

다음과 같이 나타났다면 정상적으로 세팅이 이루어진 것 입니다.

그리고 마지막으로 nginx를 재시작 해주면 됩니다.

이제 nignx가 웹서비스를 정상적으로 제공하는 지 확인하기 위해서 생성한 도메인에 대한 document root에 index.html 파일 추가 후 웹브라우져를 이용하여 해당페이지에 접속해보도록 하겠습니다. 이전에 우선 웹서비스를 제공하는 라즈베리파이 서버 사용자 계정에 접속합니다.

이전단계에서 만든 세팅파일에서 지정한 document root 의 경로를 맟춰주기 위해 html directory를 생성합니다.

그리고 그 안에 index.html 파일을 생성합니다.

vim 에디터를 열어서 index.html 파일의 내용을 입력합니다.
index.html 파일의 내용, 테스트 목적이므로 간단하게 구성하였습니다.

다음과 같이 정상적으로 저장된 것을 확인했다면 테스트를 위한 준비를 마쳤습니다.

​현재 실습에서 사용하는 라즈베리파이에 세팅하는 웹서버는 가상호스트로서 정식으로 할당받은 도메인이 아닙니다. 그렇기 때문에 DNS에는 우리가 생성한 도메인에 대한 정보가 없으며 이를 이용하기 위해서 사용자는 local PC의 host파일에 사용할 도메인 명과 ip주소를 등록해줘야 합니다.

Local PC에서 root 권한을 획득하였습니다.
hosts 파일의 경로, 운영체제 별로 경로가 상이하니 참고바랍니다.
추가 전(왼쪽), 추가 후(오른쪽)

hosts 파일에 도메인 명과 IP 주소를 등록한 후 웹브라우져로 이동해서 해당 주소로 접속해보면 index.html 파일의 내용이 정상적으로 나타나는 것을 확인할 수 있습니다.

이제 이로서 nignx가 정상적으로 세팅이 완료되어 웹서비스를 제공할 수 있는 상태가 되었음을 확인하였습니다. 이제 CMS(wordpress)를 다운로드 및 설치해서 웹페이지를 생성하도록 하겠습니다.

 

이제 웹서비스를 수행하는 라즈베리파이 서버의 사용자 계정으로 접속합니다.

그리고 설치파일을 다운로드해서 압축을 해제해야 합니다. 다운로드하는 위치는 document root directory 입니다. 설치파일 다운로드는 이전 실습에서도 다루었던 wget 명령어를 다음과 같이 활용해서 진행합니다.

wget https://ko.wordpress.org/latest-ko_KR.tar.gz

다운로드가 진행되는 모습, 조금만 기다려주면 완료됩니다.
설치파일이 다운로드 된 모습

현재 wget을 이용해서 다운로드한 설치파일은 압축되어 있는 압축파일입니다. 그래서 설치를 위해서는 해당파일의 압축을 해제해줘야 합니다. 명령어는 다음과 같이 사용합니다.

tar -xzvf latest-ko_KR.tar.gz

압축해제가 완료된 모습, 압축해제되는 파일들의 리스트가 출력됩니다. 명령어 입력 후 잠시만 기다려주면 됩니다.
압축 해제 후 wordpress 디렉터리가 생성된 것을 확인할 수 있습니다.

​이제 서버관리자의 역할입니다. 이제 웹서비스에 사용할 사용자용 DB를 생성해야 합니다. 라즈베리파이 시스템 root와 mairadb의 root는 완전히 다른 root 이므로 비밀번호만 알고 있다면 라즈베리파이서버 사용자 계정에서도 DB root로 접속하는 것이 가능하지만 일반 사용자가 DB root에 접근하는 일은 사실상 거의 없기 때문에 제대로된 실습을 위해서 시스템 관리자 계정인 pi 계정으로 재접속 후 DB root로 접속하도록 하겠습니다.

pi계정으로 접속 후 root 권한을 획득한 모습
DB root로 접속
사용자용 DB 생성

이전 DB 세팅 실습에서 공부했듯이 사용자용 DB 생성에 필요한 3가지 정보

  1. DB 이름
  2. DB 접근 사용자 이름
  3. 비밀번호

를 차례대로 생성해줍니다.

이제 사용자용 DB 생성을 마쳤습니다. 이제 웹브라우져에서 설치페이지로 이동해서 wordpress 설치과정을 진행해야 합니다.

http://wp_juyoungit.com/wordpress/

다음과 같은 형식으로 웹브라우져에 주소를 입력하고 들어가면 다음과 같은 창이 나타납니다.

Let's go!를 클릭해서 다음단계로 넘어가줍니다.

다음으로 진행하게 되면 이렇게 DB 연결정보를 입력하는 페이지가 나타납니다. 이곳에 이전단계에서 생성한 사용자용DB 정보를 순서대로 입력해주면 됩니다.

입력 전(왼쪽), 입력 후(오른쪽) ​

정상적으로 DB 연결정보를 입력했다면 다음과 같이 wp-config.php 파일을 생성해주어야 합니다. 페이지에서 출력되는 내용을 복사하고 그대로 붙여넣기 해서 파일만 만들어주면 됩니다.

따로 수정이 아닌 붙여넣기만 하면 되기 때문에 vim이 아닌 cat을 사용하여 입력하였습니다.
wp-config.php 파일이 정상적으로 생성된 모습

wp-config.php 파일을 생성했다면 설치페이지에서 "설치 진행하기"를 클릭해주면 됩니다.

입력 전(왼쪽), 입력 후(오른쪽)

위와 같이 페이지 생성을 위한 관련 정보들을 입력해주면 세팅과정이 마무리 됩니다.

정상적으로 설치를 마친 모습

설치를 마쳤다면 이제 로그인해서 페이지로 이동하면 됩니다.

설치단계에서 입력한 정보들을 입력하여 로그인 하면, 다음과 같이 wordpress 관리자 페이지가 나옵니다.

 이제 이전 batflat CMS을 이용해서 진행했던 실습처럼 자신이 원하는 대로 페이지를 구성할 수 있습니다. ​이것으로 wordpress 설치관련 실습을 마쳤습니다. 다음글에서는 wordpress 테마를 적용하고 사용자화 하는 것에 대한 내용을 다뤄보도록 하겠습니다. 감사합니다.