editWindows 2008에 PHP 구성 및 XE 이용 방안

 

*IT 전문가 Windows 2008에 PHP 구성 및 XE보드, 텍스트큐브 이용 방안.style1 { COLOR: #ff0000 } .style2 { BACKGROUND-COLOR: #ffff00 } .style3 { MARGIN-LEFT: 40px }

 

edit IT 전문가 Windows 2008에 PHP 구성 XE 이용 방안

  1. Windows2008 설치 및 IIS7, FTP 구성 / 무인설치 가능

    이용 중인 Windows2008 무인설치(unattended install) 스크립트를 이용하는 것을 권장. CMD를 이용할 경우 ServerManagercmd.exe를 이용해 IIS7 및 FTP서비스 구성을 권장
    70.jpg
    명령 : 관리자 권한으로 다음 명령을 실행해 서버 구성을 실행
    ServerManagerCmd.exe -install Web-Static-Content Web-Default-Doc Web-Dir-Browsing Web-Http-Errors Web-App-Dev Web-Http-Logging Web-Request-Monitor Web-Filtering Web-Mgmt-Console Web-Scripting-Tools Web-Metabase Web-Ftp-Publishing
    필요 서비스를 자동 설치하는 스크립트
    참고자료 : http://www.windowsnetworking.com/articles_tutorials/Windows-Server-2008-Servermanagerexe-CLI-tool-Add-Remove-Server-Roles.html

  2. 최신 버젼의 .NET Framework 3.5 설치/ 무인설치 가능
    설치 패키지 : http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7
    전체 패키지(Full version) 다운로드 후 무인설치 명령으로 설치 권장. 최소한의 UI로 EULA 동의 명령 등은 포함될 수 있음. 필요할 경우 RunOnce 스크립트에 포함 가능
    명령 :  다운로드한 dotnetfx35.exe 파일 경로에서 다음 명령 실행
    dotnetfx35.exe /q
  3. FastCGI 업데이트 설치 -  Update for IIS 7.0 FastCGI module / 무인설치 가능
    다운로드 : http://www.microsoft.com/downloads/details.aspx?FamilyID=d0343911-1775-4aef-8c99-5f13862ac386&DisplayLang=en
    명령 : 단순 윈도우즈 업데이트임. 실행
  4. IIS7 관리자 패키지 설치 -  Administration Pack for IIS 7.0 / 무인설치 가능
    다운로드 : http://www.iis.net/downloads/default.aspx?tabid=34&i=1682&g=6
    명령 : AdminPack_x86.msi /passive
  5. 최신 버젼의 PHP5 버젼 다운로드 / 무인설치 가능
    PHP5 "non-thread safe"로 구성된 ZIP 패키지를 다운로드 후 php.ini 파일에 대해서 이용 중인 설정을 적용
  6. 최신 버젼의 MySQL Zip archive 다운로드 / option 파일 구성 / Server type 설정 / 기본 계정 구성 / DB생성 / DB보안작업 실행
  7. URL Rewrite 설치 / 무인설치 가능
    다운로드 : x86버젼 : http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691
    명령 : rewrite_x86_rtw.msi /passive

 

 

 

editPHP 구성 절차

 

php 폴더는 c:php, php의 임시 업로드 폴더는 c:tempupload 폴더로 설정. 호스팅 웹사이트는 c:webhosting 폴더 하위에 각 폴더로 설정 (현재 테스트는 "c:webhostingwww.abc.com" 으로 설정

 

  1. php.ini 파일 설정 - 1회 설정 후 각 서버 환경에서 재사용 가능
     fastcgi.impersonate = 1
    cgi.fix_pathinfo=1
    cgi.force_redirect = 0
    extension=php_mysql.dll
    extension=php_mssql.dll
    extension=php_gd2.dll
    open_basedir 설정은 설치 폴더에 따라 동적으로 구성 가능하며, FastCGI에서 동적으로 사이트별로 호출 역시 가능. 현재는 "c:webhostingwww.abc.com" 으로 설정
    open_basedir = c:webhostingwww.abc.com
    extension_dir = "./ext"
    upload_tmp_dir = c:tempupload
  2. tempupload 폴더에 IIS7 계정 권한 설정 - IIS_IUSRS 에게 쓰기 및 모든 권한 설정
    mkdir c:tempupload
    icacls c:tempupload /grant "IIS_IUSRS":(OI)(CI)F /T /C
  3. FastCGI 설정 및 처리기 매핑
    %windir%system32inetsrvappcmd set config /section:system.webServer/fastCGI /+fullPath='c:phpphp-cgi.exe'
    %windir%system32inetsrvappcmd set config /section:system.webServer/handlers
    /+name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='c:php
    php-cgi.exe',resourceType='Unspecified'
  4. PHP 성능을 위한 PHP_FCGI_MAX_REQUESTS 값 설정 "10000"으로 설정
    %windir%system32inetsrvappcmd set config -section:system.webServer/fastCgi /fullPath='c:phpphp-cgi.exe'.instanceMaxRequests:10000
    %windir%system32inetsrvappcmd.exe set config -section:system.webServer/fastCgi /+"fullPath='C:phpphp-cgi.exe'.environmentVariables.name='PHP_FCGI_MAX_REQUESTS',value='10000'"
  5. IIS7에 웹사이트 추가 - www.abc.com 폴더 생성.
    c:webhostingwww.abc.com 폴더를 IIS7의 www.abc.com 웹사이트, 80포트로 바인딩 추가. 응용프로그램 풀 추가. 폴더 권한 설정
    mkdir c:webhostingwww.abc.com
    PHP 응용프로그램(XE보드 또는 Textcube) 파일을 다운로드 후  c:webhostingwww.abc.com 폴더복사 실행
    www.abc.com 폴더에 IIS_IUSRS 계정 권한 설정
    icacls C:webhostingwww.abc.com /grant "IIS_IUSRS":(OI)(CI)F /T /C
  6. 웹사이트를 생성
    %systemroot%system32inetsrvAPPCMD add site /name:www.abc.com /bindings:"http/*:80:" /physicalPath:C:webhostingwww.abc.com

    1. 결과
      SITE object "www.abc.com" added
      APP object "www.abc.com/" added
      VDIR object "www.abc.com/" added
    2. 응용프로그램풀 생성
      %systemroot%system32inetsrvAPPCMD add apppool /name:www.abc.com
    3. 결과
      APPPOOL object "www.abc.com" added
    4. www.abc.com 웹사이트에 대해 위에서 생성한 www.abc.com응용프로그램풀을 세팅
      %systemroot%system32inetsrvAPPCMD set app "www.abc.com/" /applicationPool:www.abc.com
    5. 결과
      APP object "www.abc.com/" changed
    6. 생성한 웹사이트에 기본문서에 index.php 추가
       %systemroot%system32inetsrvappcmd set config "www.abc.com" /section:defaultDocument /+files.value='index.php'
    7. 결과
      Applied configuration changes to section "system.webServer/defaultDocument" for"MACHINE/WEBROOT/APPHOST/www.abc.com" at configuration commit path "MACHINE/WEBROOT/APPHOST/www.abc.com"
      * 참조 : 응용프로그램 풀을 사이트당 제작할지 여부는 호스팅사의 결정임. 필요하다면, 하나의 풀을 여러 웹사이트가 공유 역시 가능.
  7. URL Rewrite 구성을 웹사이트로 추가
    1개의 웹사이트에서 URL Rewrite Rule을 GUI로 생성하고, 아래의 명령으로 rule.xml파일을 제작 후 원하는 웹사이트 등에 추가 가능. 참고로, rule은 web.config의 rule 섹션에 존재함.
    Rule을 제작해 rule.xml 파일에 추가
    %systemroot%system32inetsrvappcmd list config "www.abc.com/www.abc.com" -section:system.webServer/rewrite/rules -xml > c:rule.xml
    rule.xml 파일로 특정 웹사이트에 rule을 추가
    %systemroot%system32inetsrvappcmd set config "www.abc.com" -in < c:rule.xml
    참고 : 최초의 Rewrite Rule을 설정하는 방법은 사용자 설정 내용을 참조.
  8. FTP 구성을 위해 사용자 추가
    기존에 이용하는 FTP 구성 및 설정 Batch를 이용 가능
  9. 테스트 실행
    * 참고
    테스트 요청은 반드시 http://127.0.0.1 로 실행 필요 - localhost로 수행시 브라우져 쿠키 설정 이슈로 로그인이 동작하지 않을 수 있음.
    테스트하는 시스템의 브라우져에 Adobe Flash Player가 설치되어 있지 않을 경우 파일 업로드 upload 테스트에서 문제가 발생할 수 있음.
    http://get.adobe.com/kr/flashplayer/ 에서 Flash Player를 설치 후 업로드 테스트를 권장