PHP 설치에 필요한 구성요소 목록 및 다운로드
- 최신 버젼의 .NET Framework 3.5 설치
XE를 설치하기 위해서 이용되는 여러 설치 편의 응용프로그램과 웹서버의 성능 향상에 도움이 되는 구성요소를 설치합니다.
다운로드 : http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7 - FastCGI 업데이트 설치 - Update for IIS 7.0 FastCGI module
IIS7에 기본포함된 FastCGI의 최신 보안 업데이트 및 기능 향상 버젼을 설치합니다.
다운로드 : http://www.microsoft.com/downloads/details.aspx?FamilyID=d0343911-1775-4aef-8c99-5f13862ac386&DisplayLang=en - IIS7 관리자 패키지 설치 - Administration Pack for IIS 7.0
IIS7에서 PHP를 이용하기 위해 필요한 FastCGI 설정 편의를 제공합니다.
다운로드 : http://www.iis.net/downloads/default.aspx?tabid=34&i=1682&g=6 - 최신 버젼의 PHP 버젼 다운로드 - 이 문서는 PHP 5 버젼 이상을 기준으로 작성 되었습니다.
IIS7에서 최적의 성능을 제공할 수 있는 PHP 5패키지를 다운로드 합니다. 다운로드 하실 버젼은 반드시 "non-thread safe"로 구성된 ZIP 패키지를 다운로드 합니다.
다운로드 : http://www.php.net/downloads.php - PHP 5버젼 Non-Thread-safe zip package 다운로드 - 최신 버젼의 MySQL 다운로드
다운로드 : http://dev.mysql.com/downloads/
MySQL은 최신의 안정 버젼인 5.1 버젼을 구성 하실 것을 권장해 드립니다. - Windows 2008과 호환되며, 방화벽 자동 설정이 설치시 포함되어 있습니다. MySQL을 Windows에서 설치하는 과정은 온라인에서 검색해 보시면 쉽게 확인 가능합니다. - URL Rewrite 설치
사용자 및 검색엔진에 편의성을 제공하는 링크를 제공합니다. XEe에서 IIS7용 URL Rewrite 모듈을 이용해 편의 링크를 제공합니다.
다운로드 : http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691 - Windows Server 2008의 웹서버, IIS7 설치 및 구성
IIS7의 웹서버 역할을 추가합니다.
관리도구 - 서버 관리자 실행 - "역할" 선택 후 "역할추가" - "웹 서버" 선택
"응용프로그램 개발" 역할 추가
FTP로 파일 처리가 필요할 경우 "FTP 게시 서비스" 선택 후, 자동으로 선택되는 서비스 추가
IIS7에서 PHP실행하기 위한 설치 완료 확인 - FastCGI 구성
FastCGI는 웹서버인 IIS7에서 PHP 실행을 최적화하기 위한 처리 실행 어플리케이션 입니다.
위 과정에서 기본적으로 설치되나 최신의 보안 업데이트를 구성 하실 것을 권장합니다.
- 설치 구성요소 항목 2) FastCGI 업데이트 설치 - Update for IIS 7.0 FastCGI module 을 실행해 설치합니다.
이어서 FastCGI 구성 편의를 위한 3) IIS7 관리자 패키지 설치 - Administration Pack for IIS 7.0을 설치합니다.
- 설치 구성요소 항목 3) IIS7 관리자 패키지 설치 - Administration Pack for IIS 7.0을 실행해 설치합니다.
설치 옵션은 기본인 Typical로 설치 하시면 완료되며, 필요하실 경우 Custom 설정 역시 가능합니다. - PHP 구성
공식 PHP 사이트에서 다운로드한 PHP 5버젼 Non-Thread-safe zip 패키지의 압축을 원하시는 경로에 풀어 주세요.
편의를 위해 "C:\PHP" 폴더를 만들고 여기에 압축을 풀었습니다.
이어서, "php.ini-recommended" 파일을 "php.ini"로 파일명을 변경합니다.
IIS7에서 PHP를 실행하기 위해 수정할 항목은 아래와 같습니다.
fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
open_basedir 는 XE가 위치할 폴더 경로 입니다.
open_basedir = c:\xe
extension_dir = "./ext"
extension=php_mysql.dll
extension=php_mssql.dll
extension=php_gd2.dll
upload_tmp_dir은 파일 업로드시 임시로 저장되는 경로 입니다. IIS7의 작업자 계정인 "IIS_IUSRS"에 대해서 "모든 권한" 설정이 필요합니다. 파일이나 이미지 업로드를 위해 반드시 설정해야 하며, 저는 c:\tempupload 폴더로 지정 했습니다.
upload_tmp_dir = c:\tempupload
모든 설정을 완료하면 파일을 저장합니다.
업로드 임시 폴더 권한 설정 방법 - tempupload 폴더 설정
탐색기의 tempupload 폴더에서 마우스 우클릭 후 "속성" 실행. "보안"탭 선택 후 "편집" 실행. "추가" 버튼 클릭
선택할 개체 이름에 "IIS_IUSRS" 선택 후 "이름 확인" 수행
IIS_IUSRS 선택 - 사용 권한 항목의 "모든 권한" 허용에 체크 후 확인
이제 PHP 구성 및 업로드 폴더 구성 처리가 완료 되었습니다. PHP 설정 확인을 위해 "명령 프롬프트"를 실행하시고 PHP가 설치된 c:\php 폴더로 이동 후 "php -info"를 실행해 php.ini 파일 설정이 정상인지 확인합니다.
윈도우의 "시작" 버튼 클릭 - "실행" - "cmd" 타이핑 후 확인. "명령 프롬프트"에서 "cd c:\php" 실행 후 "php -info" 실행 후 결과 확인 - IIS7에 PHP 요청 처리기 구성
IIS7이 PHP 요청을 처리하기 위해서 PHP 처리기 구성을 실행해야 합니다.
관리도구 - IIS(인터넷 정보 서비스) 관리자를 실행합니다.
IIS 관리자에서 좌측 연결 항목의 서버를 선택 후 "처리기 매핑"을 실행합니다.
"모듈 매핑 추가"를 선택 후 아래 항목을 입력 합니다.
요청경로 : *.php
모듈: FastCgiModule
실행 파일: "C:\php\php-cgi.exe"
이름: PHP FastCGI
* 실행 파일 경로는 PHP가 설치된 경로의 php-cgi.exe 파일 입니다.
"모듈 매핑 추가" 확인 창이 나오면 예를 선택해 다음을 진행합니다.
IIS7이 PHP 요청을 처리 가능한지 확인하기 위해 다음을 수행합니다.
메모장 응용프로그램을 실행 후 아래 내용 1줄을 입력합니다.
<?php phpinfo(); ?>
C:\inetpub\wwwroot 폴더에 phpinfo.php 파일로 저장합니다. 인터넷 익스플로러 브라우져를 열고 http://localhost/phpinfo.php 를 실행합니다.
실행 후 위의 화면이 보이면 PHP 처리기 구성이 완료된 것입니다. - 최적의 성능을 위한 IIS7의 FastCGI 및 PHP 구성
* 이 내용은 IT전문가를 대상으로 작성 되었습니다.
II7에서 최적의 성능을 끌어내기 위한 방법으로 여러 가지 방안이 권장되고 있습니다. 특히, 웹사이트 안정성을 위해 사이트별 보안 격리 작업을 수행 가능하며, 사이트당 개별 응용프로그램 풀 설정 등의 IIS7 모델을 이용한 방법도 제공됩니다.
PHP에서 제공되는 PHP_FCGI_MAX_REQUESTS 처리와 유사하게, IIS7의 FastCGI 에서도 instanceMaxRequests 설정 값을 통해 FastCGI 리사이클링을 조절 가능합니다.
이와 관련된 상세한 설정 방법은 아래 링크를 참조 하시길 바랍니다.http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/#BestPractices - 서로 다른 버젼의 PHP를 IIS7에서 구성하는 방법 - PHP4와 PHP5를 하나의 웹서버에서 구성하는 방법.
* 이 내용은 IT전문가를 대상으로 작성 되었습니다.
호스팅 환경이나 회사내 환경에서는 어플리케이션 종속성에 의해, 특정 버젼의 PHP를 하나의 시스템에서 운영해야 하는 경우(Multiple PHP Versioning) 가 흔히 발생합니다. IIS7에서 역시 이러한 PHP Versioning을 수행 가능하며, 원하시는 갯수 만큼의 PHP 버젼을 하나의 IIS7에서 운영 가능합니다. 또한, 각 버젼별 어플리케이션의 성능 향상과 프로세스 격리를 위해 응용프로그램 풀을 버젼별로, 또는 웹사이트 별로 설정 가능합니다. 이와 관련된 설정은 아래 링크를 참조 하시길 바랍니다.
http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/#PHP_Versioning - IIS7의 PHP를 실행할 경우 보안 권고사항
* 이 내용은 IT전문가를 대상으로 작성 되었습니다.
IIS7의 FasfCGI를 통해 PHP의 설정 파일인 php.ini의 보안 설정을 그대로 적용 가능합니다. 보안 권고 사항은 아래 내용을 참고 하시길 바랍니다.
http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/#PHP_Security_Recommendations_ - 여러 웹사이트별 PHP 구성
* 이 내용은 IT전문가를 대상으로 작성 되었습니다.
호스팅 환경일 경우 필수적인 구성 확인 사항입니다. 하나의 시스템에 수많은 PHP 웹사이트를 호스팅 가능하며 php.ini 파일의 open_basedir 설정을 웹사이트별로 동적으로 조절하거나 PHP 처리기를 동적으로 웹사이트별로 매핑 역시 가능합니다. php.ini 파일의 환경 변수(environment variable)를 이용해 설정 값 여부로 처리 역시 가능합니다. 아래 자료는 호스팅 비지니스를 하시는 분들에게 유용한 여러 사이트를 구성하는 정보를 담고 있으니 도움 되시길 바랍니다.
http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/#Per-site_PHP_configuration - URL Rewrite 모듈 설치 및 구성
사용자 편의 URL(user friendly link URL) 및 검색엔진 편의 링크(search engine friendly URL)를 제공합니다.
XE는 IIS7용 URL Rewrite 모듈을 이용해 편의 링크를 제공합니다.