Skip to main content

라즈베리파이3 OS 설치과정 – part4 (WordPress 블로그 용도)

이제 본격적으로 워드프레스를 사용하기 위해 필요한 웹서버 설치 하겠습니다.

라즈베리파이3에 적합하다고 판단되는 nginx와 php7.0 fpm 그리고 mariadb를 설치하는 과정을 다룹니다.

패키지 업데이트

윈도우 업데이트와 마찬가지로 리눅스에서도 각 프로그램에 대한 업데이트를 지원합니다. 때로는 버그를 수정하기 위해, 때로는 보안에 문제가 있어 이를 해결한 업데이트를 배포하고 있으니 특별한 사유가 없다면 업데이트하는 것이 바람직하다 볼 수 있습니다.

업데이트하기 위한 명령어는 다음과 같습니다.

# 업데이트 목록(패키지) 갱신
$ sudo apt-get update
# 업데이트 적용(업데이트가 필요한 목록 출력 및 업데이트시 y키 입력 필요)
$ sudo apt-get upgrade

업데이트가 완료되었으면 이제 본격적으로 nginx 부터 설치를 진행합니다.

nginx 설치 방법의 선택

nginx를 설치하는 방법은 크게 2가지로 나눌 수 있습니다. 첫번째는 소스코드로 이루어진 파일들을 받아서 라즈베리파이에서 직접 실행할 수 있는 파일로 만드는 방법(컴파일)과 두번째로 라즈베리파이에서 사용 가능한 실행파일로 배포되는 패키지로 설치하는 방법입니다.

패키지로 설치하는 방법입니다. 단 한 줄이면 끝납니다.

$ sudo apt-get install nginx

저는 소스코드로 컴파일하는 과정으로 진행 하겠습니다. 그 이유는 cloudflare라는 서비스를 원할하게 이용하기 위함입니다.

cloudflare 서비스는 웹 방문자와 서버(라즈베리파이) 사이에 개입하여 방문자는 cloudflare에 접속하고 cloudflare가 서버(라즈베리파이)에 대신 접속하여 결과를 방문자에게 돌려주는 방식으로 동작합니다. 즉, 방문자는 직접 서버(라즈베리파이)에 접속하지 못합니다. 그로 인해 얻는 장점은 나중에 설명하기로 하고, 단점은 방문자의 ip 정보를 얻기 위해서는 nginx를 패키지로 설치하는 방법으로는 해결이 어렵습니다. ip 정보를 얻기위한 nginx 모듈이 패키지 설치시에는 기본으로 포함되어 있지 않기 때문입니다. 만일 cloudflare를 사용하고자 하신다면 소스 컴파일 설치방법을 추천합니다.

소스코드를 컴파일하는 과정은 패키지로 설치하는 방법에 비해 시간이 오래걸리고 과정도 좀 더 복잡할 수 있으나 어렵진 않습니다. 우선 nginx 사이트에 접속하여 해당 소스파일을 다운로드 합니다. 라즈베리파이에서는 웹브라우저를 열 수 없으니 해당 파일의 다운로드 링크를 복사하여 wget이라는 리눅스용 다운로드 프로그램을 이용합니다.

nginx 소스파일 이용 설치

현재 1.9.12 버전이 최신이지만 글 확인 시점엔 더 최신 버전이 있을 수 있으니 다운로드 페이지에 접속하여 확인해보시고 동일하다면 바로 아래 다운로드 페이지의 링크를 복사하셔서 사용하시기 바랍니다.

nginx 다운로드 페이지
nginx 1.9.12

해당 링크를 복사하셨으면 설치를 진행합니다.

# 소스파일 다운로드
$ wget http://nginx.org/download/nginx-1.9.12.tar.gz
# 소스파일 압축풀기
$ tar zxvf nginx-1.9.12.tar.gz
# 압축 푼 폴더로 이동
$ cd nginx-1.9.12
# nginx 컴파일에 필요한 패키지 설치
$ sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev openssl openssl-dev libssl-dev
# nginx 컴파일 설정
$ ./configure --with-http_realip_module --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module
  • –with-http_realip_module : cloudflare와 같은 사이트를 거쳐서 접속하는 사용자의 ip주소를 알고자할 때 필요합니다.
  • –with-http_ssl_module : https 프로토콜을 사용할 수 있게 합니다.
  • –with-http_stub_status_module : 웹브라우저를 통해 nginx 상태를 간단하게 확인할 수 있습니다.
    HowTo: Enable Nginx Status Page
  • –with-http_gzip_static_module : 웹브라우저 표시에 필요한 파일들을 압축하여 전송할 수 있습니다. 트래픽 감소에 효과가 있습니다.
  • –with-http_v2_module : http 프로토콜의 전송 속도를 개선하는 http/2를 사용할 수 있습니다.
    더 빠른 웹을 위한 프로토콜 , ‘HTTP/2’

마지막 명령어를 실행하면 컴파일 하기 전 필요한 내용을 체크하는 과정이 진행됩니다. 마지막에 기억해야 할 사항들이 출력되는데 nginx 설치 경로 등을 알려주므로 기억해 두는 것이 좋습니다.

nginx path prefix: “/usr/local/nginx”
nginx binary file: “/usr/local/nginx/sbin/nginx” : nginx 실행파일
nginx modules path: “/usr/local/nginx/modules”
nginx configuration prefix: “/usr/local/nginx/conf”
nginx configuration file: “/usr/local/nginx/conf/nginx.conf” : 설정파일
nginx pid file: “/usr/local/nginx/logs/nginx.pid
nginx error log file: “/usr/local/nginx/logs/error.log” : 에러 로그 파일
nginx http access log file: “/usr/local/nginx/logs/access.log” : 접속 로그 파일
nginx http client request body temporary files: “client_body_temp”
nginx http proxy temporary files: “proxy_temp”
nginx http fastcgi temporary files: “fastcgi_temp”
nginx http uwsgi temporary files: “uwsgi_temp”
nginx http scgi temporary files: “scgi_temp”

과정이 무사히 진행되었다면 이제 실행파일을 만드는 과정(컴파일)을 진행합니다.

$ make

라즈베리파이3 기준 약 2~3분 정도 걸리는 작업이 완료되면 컴파일 과정으로 생성된 파일들을 위에서 출력된 경로들로 옮기는 과정을 진행합니다. 명령어 한 줄이면 끝나지만 해당 경로는 관리자 권한을 필요로 하니 sudo를 앞에 붙여줍니다.

$ sudo make install

설치 과정이 완료 되었습니다. 이제 자동 실행을 위한 init 스크립트를 설정합니다. 이미 만들어서 배포하고 있는 파일을 다운로드하여 사용합니다.

nginx 서비스

# init 스크립트 다운로드
wget https://github.com/JasonGiedymin/nginx-init-ubuntu/blob/master/nginx
# 파일 이동 및 실행권한 수정
$ sudo cp nginx /etc/init.d/
$ sudo chmod 755 /etc/init.d/nginx
# init 스크립트 목록 갱신
$ sudo systemctl daemon-reload
# nginx 서버 실행
$ sudo service nginx start

라즈베리파이의 ip 주소를 이용 웹브라우저로 접속을 시도합니다. “Welcome to nginx!” 화면이 출력된다면 설치가 정상적으로 되었습니다.

다음 포스트에서는 php를 설치하고 nginx와 연동하는 과정을 다루겠습니다.