1. IIS에서의 FastCGI 지원 설정
서버 관리자->역할 요약->역할 추가->CGI 를 체크하면 CGI와 FastCGI 서비스가 모두 설정됨

2. PHP를 설치 및 설정
Non Thread Safe Build Version
은 ThreadSafe한지 검사를 수행하지 않으므로, 성능상의 이점을 제공한다고 하지만, 원하는 것으로 선택하여도 무방.

  1. 원하는 디렉터리에 압축을 풀어놓고, php.ini-development.ini, php.ini-production.ini 중 입맞에 맞는걸 복사하여, php.ini로 만든다.

  2. ini 설정
    1) fastcgi.impersonate = 1 // 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을 설정합니다.
    5) date.timezone = Asia/Seoul // PHP 설치 후, phpinfo()함수로 설치된 정보 내역을 확인할 때, date 부분에 에러가 난다면, timezone이 설정되지 않았기 때문에 이 메시지를 없애기 위해서 설정.

  3. D:\PHP>php –info // PHP가 올바르게 설치되었고 컴퓨터에서 모든 종속 요소를 사용할 수 있는 경우, 현재 PHP 구성 정보가 출력됨.

3.  PHP 요청을 처리하도록 IIS 구성

PHP 파일에 대한 모든 요청을 PHP 응용 프로그램 프레임워크로 전달하도록 설정하는 처리기 매핑을 추가해야 하는데, 아래처럼 하면된다.
IIS 관리자->처리기 매핑->모듈 매핑 추가

  1. 모듈 매핑 추가 대화 상자에서 아래와 같이 구성 설정을 지정.

    • 요청 경로: *.php
    • 모듈: FastCgiModule
    • 실행 파일: C:\[Path to your PHP installation]\php-cgi.exe
    • 이름: PHPviaFastCGI
      <?php
      // $timezone = "Asia/Seoul";
      // if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
       phpinfo();
       ?>
  2. 웹 브라우저를 열고 http://localhost/phpinfo.php를 열어 보면 올바르게 설정되었으면 표준 PHP 정보 페이지가 표시됨.

 

+ Recent posts