2013년 3월 14일 목요일

NGINX와 PHP설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 http://www.nextlab.co.kr:8080/nw/에서 100% 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux가 설치되었을 때를 기준으로 설명합니다.

NGINX는 가벼워서 저성능의 서버에서도 실행되며, 각종 보완되지 않은 취약점에 해킹당할 수 있는 서버의 앞에 둠으로써  보안이슈를 보완할 수 있는 서버입니다.(원본링크) 그리고 참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아서 systemctl로 대체합니다.


2. NGINX설치

pacman -Sy nginx
systemctl start nginx

nginx가 실행되는지 테스트하는 방법은 웹브라우저를 열어서 http://pogoplug_IP를 입력하여 엽니다. 그럼 'welcome to nginx'라는 문구가 나옵니다.

기본 홈 위치는 /usr/share/nginx/html 입니다.
3. PHP 설치 및 연동

static한 html, image나 간단한 파일을 올릴 목적이면 이 정도로 끝낼 수 있지만, 우리는 그누보드까지 설치가 가능한 제대로 된 웹서버이기 때문에 php 설치 및 연동 설정 작업이 필요합니다.

pacman -Sy php-fpm
pacman -Sy php-gd
systemctl start php-fpm



4. PHP 설정

nano /etc/php/php.ini

(samba를 무사히 설치했다면 nano 대신 윈도우 탐색기에서 열어도 무방합니다. 단 ultra edit같이 UNIX 파일을 지원하는 에디터를 이용해야 합니다.)

아래와 같이 수정하거나 주석(;)을 지워주어야 합니다. (새로 추가하는 것이 아니라 찾아보면 해당 항목이 존재합니다.)

검색으로 보면 ;주석으로 묶인 첫번째 'short_open_tag'부분을 수정하지 말고 밑에 나오는 두번째 short_open_tag=Off를 수정합니다.

 ...쭈~욱 내려가다 보면 나옴.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag=Off를 다음과 같이 수정합니다.

short_open_tag=On      (php에서 <? 로 짧은 시작태그 쓸 수 있도록 설정)

...또 쭈~욱 내려가다 보면 ;주석으로 묶인 아래와 같은 부분이 나오는데, ;주석을 지웁니다.
 extension=mysql.so    (mysql 연동)
 extension=gd.so         (gd module or php 연동)


5. nginx 설정 (가장 중요한 부분입니다.)

nano /etc/nginx/nginx.conf
아래 내용은 다음을 기준으로 설정합니다. (전체를 추가하는 것이 아니라 부분적으로 추가 또는 수정하거나 ;주석을 지워주면 됩니다.)
...

http {
    ...

    access_log   off;
    gzip   on;

    server {
        listen       80;
        server_name   localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            root    /srv/http;
            index  index.html index.htm index.php;

        }

    ...앞에 ;주석을 지웁니다.
 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            try_files $uri =404;
            root                /srv/http;
            fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index   index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include            fastcgi_params;

        }
       
        location = /favicon.ico {
            return 204;
            access_log     off;
            log_not_found  off;

        }

ctrl+o, 엔터로 저장하고 ctrl+x로 나옵니다.

cd /srv/http
(디렉터리가 존재하지 않는다는 에러가 발생하면 # mkdir /srv/http 로 디렉터리를 생성하면 됩니다.)

systemctl restart php-fpm
systemctl restart nginx



6. php 연동 테스트

wget http://pogo.nextlab.co.kr:8080/phpinfo.php.bak
mv phpinfo.php.bak phpinfo.php

라고 각각 입력하고 엔터를 칩니다.
그리고 브라우저에서 '자신의 포고_IP/phpinfo.php' 를 열었을 때 php 설치 정보 페이지가 제대로 나온다면 php 연동 작업까지 성공한 것입니다.

댓글 없음:

댓글 쓰기