[nginx] nginx windows version에서 php 세팅 - fastCGI 설정하기

2014. 12. 31. 10:07 from Dev/etc

오늘은 지난 포스팅(http://banasun.tistory.com/entry/ngix-%EC%84%A4%EC%B9%98Windows)에 이어서 php 설정을 해보도록 하겠습니다. 요새는 WAMP니, LAMP니 하는 패키지처럼, apache를 쓰면 당연히 MySQL, PHP가 따라오는 거로 생각하고 있었는데, nginx에서는 php를 이용하려면 다른 설정을 해주어야 합니다. 바로 FastCGI라는 부분이지요.

FastCGI는, 기존 CGI가 web server가 request가 들어오면 CGI process를 생성해서 이를 처리하고 하면 번거로우니, 차라리 Fast CGI server가 CGI process를 처리하고(process를 생성하고 없애고 하는게 아니라 persistent process가 있는 거지요) web server는 request를 Fast CGI server로 넘겨주기만 하면 된다는 개념입니다. 이렇게 함으로써 웹서버의 부담이 줄어들고 한번에 더 많은 request를 처리할 수 있게 된다는 거지요.

1. nginx 설치하기

linux 명령어 가운데 거의 안쓰는 명령어가 있는데, 바로 touch라는 명령어지요. 설치는 지난번 포스팅에서 'touch' 하였습니다. ㅋㅋ (이래 놓으면 touch가 뭐지? 하고 찾아보시는 분들 생길 것 같네요)

안 보신 분들은 http://banasun.tistory.com/entry/ngix-%EC%84%A4%EC%B9%98Windows 보시기 바랍니다.

2. php 설치하기

이것도 binary 다운받으시면 바로 설치가 됩니다. 다운로드는 여기서(http://windows.php.net/download/) 받으시고요.

3. 설정하기

일단 php에서 별도로 cgi 처리를 위해서는 php-cgi.exe라는 파일을 돌려주어야 합니다. 아래와 같이 batch file을 만들어 놓으시면 편하게 이용하실 수 있습니다.

저는 지난번에 wamp를 깔아보면서 같이 설치된 파일이 있어서 디렉토리를 저렇게 해놨는데, 디렉토리 설정은 알맞게 바꿔주세요. 그리고 FASTCGI용 포트는 9123으로 해놓았습니다 :

@ECHO OFF
ECHO Starting PHP FastCGI...
set PATH=C:\wamp\bin\php\php5.5.12;%PATH%
C:\wamp\bin\php\php5.5.12\php-cgi.exe -b 127.0.0.1:9123

이제 nginx의 해당 부분 설정을 바꾸어줍니다.

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
	    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

이제 위에서 만든 batch 실행하신 다음에 nginx를 돌리면 됩니다. ^^

Posted by banasun :