PHP 사용을 위한 Windows Server 2008 구성 절차

by ADMINPLAY posted Dec 28, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
  • PHP 설치에 필요한 구성요소 목록 및 다운로드

    1. 최신 버젼의 .NET Framework 3.5 설치
      XE를 설치하기 위해서 이용되는 여러 설치 편의 응용프로그램과 웹서버의 성능 향상에 도움이 되는 구성요소를 설치합니다.
      다운로드 : http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7
    2. 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
    3. IIS7 관리자 패키지 설치 -  Administration Pack for IIS 7.0
      IIS7에서 PHP를 이용하기 위해 필요한 FastCGI 설정 편의를 제공합니다.
      다운로드 : http://www.iis.net/downloads/default.aspx?tabid=34&i=1682&g=6
    4. 최신 버젼의 PHP 버젼 다운로드 - 이 문서는 PHP 5 버젼 이상을 기준으로 작성 되었습니다.
      IIS7에서 최적의 성능을 제공할 수 있는 PHP 5패키지를 다운로드 합니다. 다운로드 하실 버젼은 반드시 "non-thread safe"로 구성된 ZIP 패키지를 다운로드 합니다.
      01.jpg
      다운로드 : http://www.php.net/downloads.php - PHP 5버젼 Non-Thread-safe zip package 다운로드
    5. 최신 버젼의 MySQL 다운로드
      다운로드 : http://dev.mysql.com/downloads/
      MySQL은 최신의 안정 버젼인 5.1 버젼을 구성 하실 것을 권장해 드립니다. - Windows 2008과 호환되며, 방화벽 자동 설정이 설치시 포함되어 있습니다. MySQL을 Windows에서 설치하는 과정은 온라인에서 검색해 보시면 쉽게 확인 가능합니다.
    6. URL Rewrite 설치
      사용자 및 검색엔진에  편의성을 제공하는 링크를 제공합니다. XEe에서 IIS7용 URL Rewrite 모듈을 이용해 편의 링크를 제공합니다.
      다운로드 : http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691
    7. Windows Server 2008의 웹서버, IIS7 설치 및 구성
      IIS7의 웹서버 역할을 추가합니다.
      02.jpg
      관리도구 - 서버 관리자 실행 - "역할" 선택 후 "역할추가" - "웹 서버" 선택
      03.jpg
      "응용프로그램 개발" 역할 추가
      04.jpg
      FTP로 파일 처리가 필요할 경우 "FTP 게시 서비스" 선택 후, 자동으로 선택되는 서비스 추가
      05.jpg
      IIS7에서 PHP실행하기 위한 설치 완료 확인
    8. FastCGI 구성
      FastCGI는 웹서버인 IIS7에서 PHP 실행을 최적화하기 위한 처리 실행 어플리케이션 입니다.
      위 과정에서 기본적으로 설치되나 최신의 보안 업데이트를 구성 하실 것을 권장합니다.
      - 설치 구성요소 항목 2) FastCGI 업데이트 설치 -  Update for IIS 7.0 FastCGI module 을 실행해 설치합니다.
      이어서 FastCGI 구성 편의를 위한 3) IIS7 관리자 패키지 설치 -  Administration Pack for IIS 7.0을 설치합니다.
      06.jpg
      - 설치 구성요소 항목 3) IIS7 관리자 패키지 설치 -  Administration Pack for IIS 7.0을 실행해 설치합니다.
      설치 옵션은 기본인 Typical로 설치 하시면 완료되며, 필요하실 경우 Custom 설정 역시 가능합니다.
    9. PHP 구성
      공식 PHP 사이트에서 다운로드한 PHP 5버젼 Non-Thread-safe zip 패키지의 압축을 원하시는 경로에 풀어 주세요.
      편의를 위해 "C:\PHP" 폴더를 만들고 여기에 압축을 풀었습니다.
      이어서, "php.ini-recommended" 파일을 "php.ini"로 파일명을 변경합니다.
      07.jpg
      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 폴더 설정
      08.jpg
      탐색기의 tempupload 폴더에서 마우스 우클릭 후 "속성" 실행. "보안"탭 선택 후 "편집" 실행. "추가" 버튼 클릭
      09.jpg
      선택할 개체 이름에 "IIS_IUSRS" 선택 후 "이름 확인" 수행
      10.jpg
      IIS_IUSRS 선택 - 사용 권한 항목의 "모든 권한" 허용에 체크 후 확인
      이제 PHP 구성 및 업로드 폴더 구성 처리가 완료 되었습니다. PHP 설정 확인을 위해 "명령 프롬프트"를 실행하시고 PHP가 설치된 c:\php 폴더로 이동 후 "php -info"를 실행해 php.ini 파일 설정이 정상인지 확인합니다.
      윈도우의 "시작" 버튼 클릭 - "실행" - "cmd" 타이핑 후 확인. "명령 프롬프트"에서 "cd c:\php" 실행 후 "php -info" 실행 후 결과 확인
    10. IIS7에 PHP 요청 처리기 구성
      IIS7이 PHP 요청을 처리하기 위해서 PHP 처리기 구성을 실행해야 합니다.
      11.jpg
      관리도구 - IIS(인터넷 정보 서비스) 관리자를 실행합니다.
      12.jpg
      IIS 관리자에서 좌측 연결 항목의 서버를 선택 후 "처리기 매핑"을 실행합니다.
      13.jpg
      "모듈 매핑 추가"를 선택 후 아래 항목을 입력 합니다.

      요청경로 : *.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 를 실행합니다.
      14.jpg

      실행 후 위의 화면이 보이면 PHP 처리기 구성이 완료된 것입니다.
    11. 최적의 성능을 위한 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
    12. 서로 다른 버젼의 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
    13. 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_
    14. 여러 웹사이트별 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
    15. URL Rewrite 모듈 설치 및 구성
      사용자 편의 URL(user friendly link URL) 및 검색엔진  편의 링크(search engine friendly URL)를 제공합니다.
      XE는 IIS7용 URL Rewrite 모듈을 이용해 편의 링크를 제공합니다.