PHP 응용 프로그램 호스팅을 위한 FastCGI 구성(IIS 7)

http://technet.microsoft.com/ko-kr/library/dd239230(WS.10).aspx



Windows Server 2008에서 IIS 7.0의 FastCGI 지원 설정

Windows Server 2008에서 IIS 7.0의 FastCGI 지원을 설정하려면 다음을 수행합니다.

  1. 서버 관리자를 엽니다.

  2. 오른쪽 창의 역할 요약에서 역할 추가를 클릭합니다.

  3. 역할 추가 마법사를 사용하여 CGI 역할 서비스를 선택합니다. 이렇게 하면 CGI와 FastCGI 서비스가 모두 설정됩니다.

Windows Vista SP1에서 IIS 7.0의 FastCGI 지원 설정

Windows Vista SP1에서 IIS 7.0의 FastCGI 지원을 설정하려면 다음을 수행합니다.

  1. Windows 시작 메뉴로 이동하여 제어판을 엽니다.

  2. 프로그램 및 기능을 두 번 클릭합니다.

  3. Windows 기능 사용/사용 안 함을 클릭합니다.

  4. Windows 기능 대화 상자에서 인터넷 정보 서비스World Wide Web 서비스응용 프로그램 개발 기능을 차례로 확장하고 CGI를 선택합니다. 확인을 클릭합니다.

  5. 다음 위치 중 한 곳에서 FastCGI 모듈에 대한 업데이트를 설치합니다. 이 업데이트는 자주 사용되는 PHP 응용 프로그램에서 알려진 몇 가지 호환성 문제를 수정합니다.

PHP 설치 및 구성

IIS 7 FastCGI에서는 PHP의 스레드로부터 안전하지 않은 빌드를 사용하는 것이 좋습니다. PHP의 스레드로부터 안전하지 않은 빌드는 스레드 안전 검사를 수행하지 않기 때문에 표준 빌드보다 상당한 성능 이점을 제공합니다. FastCGI는 단일 스레드 실행 환경이 보장되기 때문에 이러한 검사가 필요하지 않습니다.

PHP를 설치하려면 다음을 수행합니다.

  1. PHP 웹 사이트로 이동하여 PHP의 스레드로부터 안전하지 않은 최신 바이너리를 다운로드합니다.

  2. 선택한 디렉터리에 파일 압축을 풉니다(예: C:\PHP). Php.ini 이름을 바꿉니다(Php.ini 권장).

  3. Php.ini 파일을 열고 아래와 같이 설정을 주석 처리하고 수정합니다.

    1. fastcgi.impersonate = 1을 설정합니다. IIS의 FastCGI에서는 호출 클라이언트의 보안 토큰을 가장할 수 있습니다. 따라서 IIS에서 요청이 실행되는 보안 컨텍스트를 정의할 수 있습니다.

    2. cgi.fix_pathinfo=1을 설정합니다. cgi.fix_pathinfo는 CGI에 대한 실제 PATH_INFO/PATH_TRANSLATED 지원을 제공합니다. 이전 PHP 동작은 PATH_TRANSLATED가 SCRIPT_FILENAME으로 설정되어 PATH_INFO에서 해당 설정이 무시되었습니다. PATH_INFO에 대한 자세한 내용은 CGI 기술 규정을 참조하십시오. PATH_INFO 값을 1로 설정하면 PHP CGI 경로가 기술 규정에 맞게 설정됩니다.

    3. cgi.force_redirect = 0을 설정합니다.

    4. 웹 사이트의 콘텐츠가 위치한 폴더 또는 네트워크 경로로 open_basedir을 설정합니다.

  4. PHP가 성공적으로 설치되었는지 테스트하려면 명령 프롬프트에 다음을 입력하십시오.

    C:\PHP>php –info

    PHP가 올바르게 설치되었고 컴퓨터에서 모든 종속 요소를 사용할 수 있는 경우, 이 명령을 실행하면 현재 PHP 구성 정보가 출력됩니다.

UI를 사용하여 PHP 요청을 처리하도록 IIS 7.0 구성

IIS 7에서 PHP 응용 프로그램을 호스팅하려는 경우 IIS가 FastCGI 프로토콜을 사용하여 PHP 파일에 대한 모든 요청을 PHP 응용 프로그램 프레임워크로 전달하도록 설정하는 처리기 매핑을 추가해야 합니다.

UI를 사용하여 서버 수준에서 처리기 매핑을 추가하려면 다음을 수행합니다.

  1. IIS 관리자를 열고 서버 수준으로 이동합니다.

  2. 처리기 매핑을 두 번 클릭합니다.

  3. 작업 창에서 모듈 매핑 추가를 클릭합니다.

  4. 모듈 매핑 추가 대화 상자에서 다음과 같이 구성 설정을 지정합니다.

    • 요청 경로: *.php

    • 모듈: FastCgiModule

    • 실행 파일: C:\[Path to your PHP installation]\php-cgi.exe

    • 이름: PHPviaFastCGI

  5. 확인을 클릭합니다.

  6. 해당 실행 파일에 대해 FastCGI 응용 프로그램을 만들지 확인하는 대화 상자가 표시되면 를 클릭합니다.

  7. 처리기 매핑이 올바르게 작동하는지 확인하려면 C:\inetpub\wwwroot 폴더에 다음 내용을 포함하는 Phpinfo.php 파일을 만듭니다.

    <?php phpinfo(); ?>

  8. 웹 브라우저를 열고 http://localhost/phpinfo.php로 이동합니다. 모든 것이 올바르게 설정되었으면 표준 PHP 정보 페이지가 표시됩니다.

명령줄을 사용하여 PHP 요청을 처리하도록 IIS 7.0 구성

Appcmd.exe를 사용하여 처리기 매핑을 추가할 수도 있습니다.

명령줄을 사용하여 서버 수준에서 처리기 매핑을 추가하려면 다음을 수행합니다.

  1. FastCGI 응용 프로그램 프로세스 풀을 만들려면 다음 명령을 실행합니다.

    C:\>%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCgi /+[fullPath='c:\{php_folder}\php-cgi.exe']

  2. 처리기 매핑을 만들려면 다음 명령을 실행합니다.

    C:\>%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='c:\{php_folder}\php-cgi.exe',resourceType='Either']

    참고: PHP 버전 4.x를 사용할 경우 Php-cgi.exe 대신 Php.exe를 사용할 수 있습니다.

PHP 및 FastCGI 재생 동작 구성

기본 PHP 재생이 시작되기 전에 FastCGI에서 항상 Php-cgi.exe 프로세스를 재생하는지 확인하십시오. 구성 속성 instanceMaxRequests는 FastCGI 프로세스 재생 동작을 제어합니다. 이 속성은 재생 전에 FastCGI가 처리할 요청 수를 지정합니다. PHP에도 환경 변수 PHP_FCGI_MAX_REQUESTS로 제어되는 비슷한 프로세스 재생 기능이 포함됩니다. instanceMaxRequests를 PHP_FCGI_MAX_REQUESTS와 작거나 같은 값으로 설정하면 기본 PHP 프로세스 재생 논리가 시작되지 않도록 할 수 있습니다.

이러한 구성 속성을 설정하려면 다음 명령을 사용하십시오.

C:\>%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='c:\{php_folder}\php-cgi.exe'].instanceMaxRequests:10000

C:\>%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /+[fullPath='c:\{php_folder}\php-cgi.exe'].environmentVariables.[name=’PHP_FCGI_MAX_REQUESTS’, value='10000']

참고: 이러한 매개 변수가 설정되지 않은 경우 대부분의 PHP 빌드에서 다음과 같은 기본 설정이 사용됩니다. instanceMaxRequests = 200, PHP_FCGI_MAX_REQUESTS = 500.

저작자 표시
신고

'☆Develpoer > └ php' 카테고리의 다른 글

getimagesize  (0) 2012.11.05
PHP type comparison tables  (0) 2012.10.26
PHP 응용 프로그램 호스팅을 위한 FastCGI 구성(IIS 7)  (0) 2012.10.06
function.error-reporting DOCUMENT_ROOT  (0) 2012.10.06
php.ini 에서 date.timezone  (0) 2012.10.06
PHP 홀수 짝수 구분  (0) 2012.09.21