라즈베리파이 웹서버 설치하기(NginX + PHP5 + MySQL)

 라즈베리 파이에 웹서버를 설치해보자. 일반적인 PC를 서버로 사용하고 Ubuntu Server OS아래에서는 아파치를 웹서버 프로그램으로 사용할 것 이다. 하지만, 라즈베리 파이는 처리용량이 작은 관계로 낮은 자원을 사용하는 nginx(엔진엑스) 웹서버를 설치 할 것이다. 웹테크 관련한 통계를 조사하는 W3Tches(http://w3techs.com/)에 의하면 웹서버 중 20% 정도가 엔진엑스를 사용하고 있다고 한다.
nginx 공식사이트 : http://nginx.org/
nginx 한글 설명 : http://opentutorials.org/module/384/3462
 웹서버를 구성하기 위해 웹서버로 엔진엑스, 기본 언어로 php, DB로 mysql를 선택하였다. 그리고  php를 FastCGI 모드로 동작하기 위해서 php-fpm을 추가한다. php5-gd은 GD라이브러리를 설치하여 이미지 리사지징, 워터마크 등도 웹사이트에서 가능하게 한다. 아래와 같은 명령을 통해서 엔진엑스, PHP, mysql을 설치한다.
$ sudo apt-get install -y nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server
 의존성 검사를 통해서 다른 프로그램도 자동으로 설치되게 된다.
설치 중간에 mysql 의 루트 관리자의 비밀번호를 설정한다.
설치과 완료 되면 웹브라우져에 아래의 주소로 접속을 하면 웹페이지가 뜨는 것을 확인 할 수 있다.
http://192.168.0.102/
엔진엑스는 기본적으로 다음과 같은 설정값을 가진다.
Document Root
/usr/share/nginx/www
 설정 파일
/etc/nginx/nginx.conf
/etc/nginx/sites-available/
로그파일
/var/log/nginx/
웹서버의 기본폴더를 /usr/share/nginx/www 에서 home/pi/www 로 변경해보자.
$ sudo vi /etc/nginx/sites-available/default
 설정 파일의 24번째 라인에 있는 root /usr/share/nginx/www; 값을 root /home/pi/www; 으로 변경한다.
 PHP 파일 동작을 위해서 25번 라인에 index.php 를 추가한다. 엔진엑스와 php-fpm연동을 위해 아래 코드처럼 주석을 제거한다.
 설정이 끝이나면 wq 명령으로 저장 후, 엔진엑스를 다시 시작한다.
$ sudo service nginx restart
 이제 /home/pi/www 리렉토리 아래에 index.php 파일을 만들면 웹서버의 홈디렉토리 이동이 완성된다.
$ cd ~
$ mkdir www
$ cd www
$ vi index.php
 php가 정상적으로 동작하는걸 확인하기 위해 아래의 코드를 index.php 파일에 넣고 웹페지를 접속 해보자.
<?php
     phpinfo();
?>
아래와 같은 내용이 뜬다면 정상적으로 php가 동작하고 있는 것이다.

 192.168.0.102 와 같은 형태로 접속하는 것은 같은 공유기를 사용하는 내부망에서는 가능하지만 외부의 다른 네트워크에선 접속 할 수 없다. 고정IP를 할당받거나 IP를 고정시키는 서비스를 이용해야 한다. ipTime 공유기를 사용하고 있다면, 서브도메인.iptime.org라는 도메인을 이용할 수 있다. 필자의 경우엔 http://withover.iptime.org를 등록하여 라즈베리파이로 접속하는 경로로 사용하고 있다.
고급설정 -> 특수기능 -> DDNS 설정
 위 설정을 하면 해당 도메인으로 접속을 할 시, 공유기로 접근을 하게 된다. http, https 프로토콜인 경우, 192.168.0.102 로 포트를 포워드 해줘야 웹서버로 접근이 가능해진다.
고급설정 -> NAT/라우터관리 -> 포트포워드 설정
도메인을 등록하는 과정이 필요하므로 조금의 시간이 필요할 수도 있다.