이전 포스트에서 윈도우에 NGINX를 설치하고 서비스에 등록하는 방법까지 알아봤는데요.
NGINX를 개발 환경 또는 웹서버 환경으로 만들기 위해서 PHP를 설치해야 하는 경우 FastCGI 방식으로 연동해야 합니다.
리눅스에 NGINX와 PHP를 설치하는 방법과 같지만 윈도우 같은 경우 socket 방식으로는 연결이 불가능 하기 때문에 PHP-FPM에 프로토콜을 할당하는 방법으로 설치해야 합니다.
목차
PHP 설치
PHP For Windows Binaries and sources Releases 페이지 이동
NGINX가 세팅이 되어 있다는 전제 하에 위 페이지로 이동해 윈도우용 PHP 바이너리 파일을 다운로드 받습니다.
다운로드 받을 수 있는 패키지 종류가 Non Thread Safe와 Thread Safe 이렇게 두가지가 존재하는데 FastCGI 방식으로 구동할 것이기 때문에 Non Thread Safe를 다운로드 받아 압축을 풀어 적당한 위치에 이동시킵니다.
PHP FastCGI 방식으로 실행
앞서 얘기했던 것처럼 윈도우에서는 리눅스처럼 PHP 데몬을 소켓 방식으로 NGINX와 연결할 수 없기 때문에 프로토콜을 할당해 실행해야 합니다.
명령 프롬프트 cmd
를 실행한 다음 PHP 폴더로 이동해 php-cgi -b 127.0.0.1:9000
명령어를 실행해 PHP를 실행합니다.
실행시 명령 프롬프트는 떠있는 상태가 되는데 나중에 실행 스크립트 및 명령 프롬프트 숨기기를 설정할 것이므로 우선 넘어갑니다.
윈도우 NGINX 설정
location / { root html; index index.html index.htm index.php; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; }
이제 NGINX 설정 차례입니다. nginx.conf 설정 파일을 에디터로 연 다음 루트 블럭에 index.php
를 추가합니다.
그리고 하단의 php 확장자 블럭 구문에 주석처리(#)를 삭제한 후 fastcgi_pass
를 위와 같이 입력합니다.
마지막으로 include fastcgi_params
를 fastcgi.conf
파일로 변경하면 끝입니다. NGINX가 실행된 상태라면 cmd에서 nginx -s reload
명령어로 다시 실행합니다.
<?php phpinfo(); ?>
PHP 연동 테스트를 위해 위 phpinfo 파일을 하나 만들어 루트 폴더에 넣은 다음 브라우저에서 확인합니다.
PHP 실행시 명령 프롬프트 숨기기
앞서 PHP를 cmd
에서 실행하게 되면 명령 프롬프트가 떠있는 상태에서 실행되기 때문에 거슬리게 되므로 RunHiddenConsole 프로그램을 이용해 숨길 수 있습니다.
위 링크를 클릭해 프로그램을 다운로드 받은 다음 적당한 위치에 압축을 풉니다.
압축을 푼 위치에 위 내용을 bat 파일로 저장한 다음 PHP 실행시 bat 파일로 실행하면 명령 프롬프트가 숨겨진 상태에서 PHP가 구동됩니다.
PHP 서비스 등록하기
위와 같이 사용자가 필요할때 PHP를 실행해서 테스트 환경을 만들 수 있는데 만일 라이브 웹서버를 윈도우로 사용하는 경우는 사용자가 로그인 하지 않아도 부팅시 시스템 권한으로 자동 실행될 수 있게 서비스에 등록해야 합니다.
(서비스로 등록해 자동 실행하는 경우 위의 RunHiddenConsole은 필요가 없습니다.)
윈도우에서 기본적으로sc
명령어를 이용해 서비스에 등록하는 경우 ‘오류 1053: 서비스가 시작이나 제어 요청에 시기 적절하게 응답하지 않았습니다.’ 문제가 생기기 때문에 별도의 프로그램을 활용해야 합니다.
Non-Sucking Service Manager 페이지 링크
위 링크로 이동해 NSSM Latest release 버전을 다운로드 받은 후 적당한 위치에 압축을 풀어줍니다.
nssm install 서비스이름
명령 프롬프트 cmd
를 관리자 권한으로 실행한 다음 nssm이 위치한 경로로 이동 후 위와 같은 문법으로 서비스를 등록하는 명령어를 입력하면 NSSM GUI 설정창이 팝업됩니다.
Path 오른쪽의 버튼을 클릭해 PHP 폴더의 php-cgi.exe를 선택한 다음 Arguments 항목에 위와 같이 -b 127.0.0.1:9000
실행 옵션을 입력 후 Install Service 버튼을 클릭해 서비스로 등록합니다.
마지막으로 서비스로 등록된 PHP 서비스를 실행하면 끝입니다.