본문 바로가기

라즈베리파이

라즈베리파이4 설정(1) - NGINX와 PHP를 이용하여 웹서버 구축

라즈베리파이를 이용해서 뭘 할 것인가?

 

사람마다 그 활용도가 다르겠지만, 나의 경우 간단한 웹서버 기능과 자동 정보 수집 용도로 활용할 예정이다. 우선, 웹서버 구축을 위해서 NGINX, PHP 설치할 예정이다. 물론, NGINX 대신에 Apache를 사용해도 무방하니 필요에 따라 선택하면 될 듯 하다. (참고로 NGINX는 "엔진X"로 읽는다.)

 

1. NGINX 웹서버 설치

NGINX 서버를 설치하기 전에 우선 "apt update" 및 "apt upgrade" 명령을 수행하여 운영체제를 최신 업그레이드 하도록 한다.

# apt update
# apt upgrade

 

이제 "apt install nginx" 명령을 수행하면 NGINX 웹서버가 설치 된다.

 

웹서버 설치 후 브라우져에 라즈베리파이 IP 주소를 입력하여 아래처럼 보이면 정상적으로 설치된 것이다.

 

혹시라도 접속이 되지 않을 경우, 아래 명령으로 NGINX 서비스를 실행시켜 준 다음 다시 접속을 해보도록 한다.

# /etc/init.d/nginx start

 

2. PHP 설치

2-1. PHP 엔진 설치

이제, PHP를 설치할 차례이다. 아래 명령을 이용하여 php 패키지를 설치한다.

# apt install php-fpm

이로서,  간단하게 PHP 설치가 완료되었다.

 

2-2. NGIX 서버와 PHP 엔진 연동

NGIX 서버 설치때와는 다르게 PHP의 경우 NGINX 서버와 연동이 필요하다. NGINX 설정파일을 열어 PHP와 연동을 위한 몇가지 항목을 편집하도록 한다. "/etc/nginx/sites-enabled/default" 파일을 vi나 nano 편집기를 이용하여 열어 수정하도록 한다.

# nano /etc/nginx/sites-enabled/default

 

설정파일 중 3군데 부분에 대한 수정이 필요하다.

 

우선, 홈페이지 기본 로딩 페이지 설정을 위해 "index~~"로 시작하는 문자열을 위치를 찾아 아래처럼 내용을 수정한다. 이 설정을 통해 홈페이지를 방문하면 index.php 파일이 있을 경우 자동으로 실행된다.

 

또한, 홈페이지 소스코드 저장 위치 변경이 필요할 경우 "root /var/www/html" 설정을 원하는 폴더 위치로 수정하도록 한다. 이 설정 변경은 필요한 경우에만 수행하면 될 것이다.

 

마지막으로 PHP 엔진과 NGINX 서버 연동 설정 부분을 수정한다. 설정 파일에서 "# pass PHP scripts to ~~~" 문자열 위치를 찾아 아래처럼 주석(4군데)을 제거해 준다.

 

2-3. PHP 설정 수정

PHP 코드를 작성하는 경우 소스코드내 PHP 소스임을 알리는 태그를 사용하게 된다. 보통 "<?php"로 시작해 "?>"로 끝나거나, "<?"로 시작해 "?>" 끝나도록 한다. 그런데, 후자처럼 짧은 태그를 사용하기 위해서는 PHP 설정파일의 수정이 필요하다.

# nano /etc/php/7.3/fpm/php.ini

 

여기서는 "/etc/php/7.3/fpm/php.ini" 파일을 열어, 아래처럼 "short_open_tag" 설정값을 Off에서 On으로 수정한다.

 

2-4. 서비스 재시작

모든 설정파일 수정을 완료하였다. 이제, 아래 명령을 통해 NGINX서버와 PHP엔진을 재시작 하도록 하자.

# /etc/init.d/nginx restart
# /etc/init.d/php7.3-fpm restart

 

2-5. 접속 테스트

마지막으로 PHP가 잘 동작하는지 확인할 순서이다.

 

우선 홈페이지 소스코드가 있는 위치로 이동하여 PHP 파일 하나를 만든다. 여기서는 NGINX 설치시 같이 포함되었던 index.nginx-debian.html 파일을 index.php로 변경하였다.

그리고, index.php 파일 내용을 "<? phpinfo(); ?>"로 수정하도록 한다.

# cd /var/www/html
# mv index.nginx-debian.html index.php
# nano index.php

 

이제 웹브라우저에서 라즈베리파이 IP 주소로 접속해 보도록 한다. 아래처럼 보인다면 모든 설정이 정상적으로 완료된 것이다.