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 이용 방안
-
Windows2008 설치 및 IIS7, FTP 구성 / 무인설치 가능
이용 중인 Windows2008 무인설치(unattended install) 스크립트를 이용하는 것을 권장. CMD를 이용할 경우 ServerManagercmd.exe를 이용해 IIS7 및 FTP서비스 구성을 권장

명령 : 관리자 권한으로 다음 명령을 실행해 서버 구성을 실행
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
- 최신 버젼의 .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
- FastCGI 업데이트 설치 - Update for IIS 7.0 FastCGI module / 무인설치 가능
다운로드 : http://www.microsoft.com/downloads/details.aspx?FamilyID=d0343911-1775-4aef-8c99-5f13862ac386&DisplayLang=en
명령 : 단순 윈도우즈 업데이트임. 실행
- IIS7 관리자 패키지 설치 - Administration Pack for IIS 7.0 / 무인설치 가능
다운로드 : http://www.iis.net/downloads/default.aspx?tabid=34&i=1682&g=6
명령 : AdminPack_x86.msi /passive
- 최신 버젼의 PHP5 버젼 다운로드 / 무인설치 가능
PHP5 "non-thread safe"로 구성된 ZIP 패키지를 다운로드 후 php.ini 파일에 대해서 이용 중인 설정을 적용
- 최신 버젼의 MySQL Zip archive 다운로드 / option 파일 구성 / Server type 설정 / 기본 계정 구성 / DB생성 / DB보안작업 실행
- 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" 으로 설정
- 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
- tempupload 폴더에 IIS7 계정 권한 설정 - IIS_IUSRS 에게 쓰기 및 모든 권한 설정
mkdir c:tempupload
icacls c:tempupload /grant "IIS_IUSRS":(OI)(CI)F /T /C
- 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'
- 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'"
- 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
-
웹사이트를 생성
%systemroot%system32inetsrvAPPCMD add site /name:www.abc.com /bindings:"http/*:80:" /physicalPath:C:webhostingwww.abc.com
- 결과
SITE object "www.abc.com" added
APP object "www.abc.com/" added
VDIR object "www.abc.com/" added
- 응용프로그램풀 생성
%systemroot%system32inetsrvAPPCMD add apppool /name:www.abc.com
- 결과
APPPOOL object "www.abc.com" added
- www.abc.com 웹사이트에 대해 위에서 생성한 www.abc.com응용프로그램풀을 세팅
%systemroot%system32inetsrvAPPCMD set app "www.abc.com/" /applicationPool:www.abc.com
- 결과
APP object "www.abc.com/" changed
- 생성한 웹사이트에 기본문서에 index.php 추가
%systemroot%system32inetsrvappcmd set config "www.abc.com" /section:defaultDocument /+files.value='index.php'
- 결과
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"
* 참조 : 응용프로그램 풀을 사이트당 제작할지 여부는 호스팅사의 결정임. 필요하다면, 하나의 풀을 여러 웹사이트가 공유 역시 가능.
- 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을 설정하는 방법은 사용자 설정 내용을 참조.
- FTP 구성을 위해 사용자 추가
기존에 이용하는 FTP 구성 및 설정 Batch를 이용 가능
- 테스트 실행
* 참고
테스트 요청은 반드시 http://127.0.0.1 로 실행 필요 - localhost로 수행시 브라우져 쿠키 설정 이슈로 로그인이 동작하지 않을 수 있음.
테스트하는 시스템의 브라우져에 Adobe Flash Player가 설치되어 있지 않을 경우 파일 업로드 upload 테스트에서 문제가 발생할 수 있음.
http://get.adobe.com/kr/flashplayer/ 에서 Flash Player를 설치 후 업로드 테스트를 권장