1. IIS에서의 FastCGI 지원 설정
서버 관리자->역할 요약->역할 추가->CGI 를 체크하면 CGI와 FastCGI 서비스가 모두 설정됨
2. PHP를 설치 및 설정
Non Thread Safe Build Version은 ThreadSafe한지 검사를 수행하지 않으므로, 성능상의 이점을 제공한다고 하지만, 원하는 것으로 선택하여도 무방.
-
원하는 디렉터리에 압축을 풀어놓고, php.ini-development.ini, php.ini-production.ini 중 입맞에 맞는걸 복사하여, php.ini로 만든다.
-
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이 설정되지 않았기 때문에 이 메시지를 없애기 위해서 설정. -
D:\PHP>php –info // PHP가 올바르게 설치되었고 컴퓨터에서 모든 종속 요소를 사용할 수 있는 경우, 현재 PHP 구성 정보가 출력됨.
3. PHP 요청을 처리하도록 IIS 구성
PHP 파일에 대한 모든 요청을 PHP 응용 프로그램 프레임워크로 전달하도록 설정하는 처리기 매핑을 추가해야 하는데, 아래처럼 하면된다.
IIS 관리자->처리기 매핑->모듈 매핑 추가
-
모듈 매핑 추가 대화 상자에서 아래와 같이 구성 설정을 지정.
- 요청 경로: *.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();
?> -
웹 브라우저를 열고 http://localhost/phpinfo.php를 열어 보면 올바르게 설정되었으면 표준 PHP 정보 페이지가 표시됨.