디버깅 걸다보면 꼭 시간에 걸립니다.

 

 

오늘은 그 시간을 쭈욱 늘려 보도록 하겠습니다.

 

Ping Time을 조정하는 방법과 Ping 사용여부를 조정하는 방법이 있습니다.

 

먼저 해당 사이트의 응용프로그램 풀로 이동을 합니다.

 

 

해당 응용프로그램 풀을 선택하고 우측 작업 영역에서 응용 프로그램 풀 편집에 고급 설정을 선택합니다.

 

위에서 말씀 드린 것처럼 Ping 사용을 False로 선택하거나 Ping 최대 응답 시간을 늘려 주면 됩니다.

 

 

이렇게 하고 디버깅을 걸어서 확인 하다 보면 처음과 같은 메시지가 나타나기는 하나 계속 디버깅을 걸 수 있습니다.

 

감사합니다.

IIS 6.0에서는 2007 Office 파일이 자동으로 다운로드 되지 않습니다.

 

마임을 등록해 줘야 되는데요..

 

방법은 아래와 같습니다.

 

 

 

해당 웹사이트에 속성..

 

 

HTTP 헤더

 

 

마임 형식에 새 형식으로 등록하셔야 됩니다.

 

타입은 아래와 같습니다.

 

확장명

타입

.docx

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.dotx

application/vnd.openxmlformats-officedocument.wordprocessingml.template

.xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.xltx

application/vnd.openxmlformats-officedocument.spreadsheetml.template

.pptx

application/vnd.openxmlformats-officedocument.presentationml.presentation

.potx

application/vnd.openxmlformats-officedocument.presentationml.template

.ppsx

application/vnd.openxmlformats-officedocument.presentationml.slideshow

증상은 간단합니다.

 

자기가 자신의 웹사이트 호출시에 발생되는 문제입니다 즉..

AD로 엮여 있는 머신에서 윈도우 통합인증을 사용하는 웹 사이트를 호출합니다.

 

즉 자기가 자신의 웹을 호출합니다.

 

best.test.com

인증이 되지 않음

 

127.0.0.1

인증이 됨..

 

해결 방법은

 

http://support.microsoft.com/?id=215383

 

위 내용을 그대로 복사해서 풀어 놓게 되면..

아래와 같습니다.. *_*;;

 

IIS 7.0으로 넘어오면서 PHP가 정말 잘 구동 되게 되었습니다..

 

그래서 오늘은 IIS 7.0에 PHP를 붙여 보도록 하겠습니다~

 

 

먼저 PHP를 구동하기 위해서는 먼저 웹 서버에 역활을 추가하셔야 합니다.

서버 관리자 –> 역할 –> 역할 추가 –> CGI

 

 

 

php를 최신 버전으로 다운 로드 한 후 설치 하겠습니다.

http://kr.php.net/get/php-5.2.9-1-Win32.zip/from/a/mirror

 

에서 최신 버전을 다운 받고  C:\php에 압축을 풉니다.

압축이 풀린 폴더에서 php.ini-recommended 파일을 php.ini로 이름을 변경합니다.

그리고 아래와 같이 내용을 수정합니다.

- fastcgi.impersonate = 1
- cgi.fix_pathinfo = 1
- cgi.force_redirect = 0
- open_basedir 설정 (웹 사이트 컨텐츠가 있는 폴더나 네트웍 경로)

 

그리고 IIS에서 php 사이트를 만들어 보겠습니다.
응용 프로그램 풀은 각각 구성하시는 것을 추천합니다.

 

 

 

그리고 PHP를 구동하기 위한 모듈을 매핑하여야 합니다.

 

 

처리기 매핑을 선택하신 후 모듈 매핑 추가를 선택합니다.

 





요청 경로 : *.php

모듈 : FastCgiModule

실행 파일 : php가 설치된 경로에 php-cgi.exe로 선택하시면 됩니다.

이름 : 원하는데로 하시면 됩니다~

 

이제 php 설정은 끝났습니다.

php 웹사이트 경로에 test.php 파일을 만드시고.

<?php phpinfo(); ?> 을 작성 하신 후 브라우져에서 확인하시면 됩니다.

 

 

위와 같이 뜨게 되면 정상입니다.

 

이로써 php 구성은 끝났습니다.

 

다음은 좀더 세밀한 설정을 해 보도록 하겠습니다.

 

FastCGI는 native PHP 리사이클링이 이루어지기 전에 php-cgi.exe 프로세스들을 리사이클링 시킵니다. 바로 이 리사이클링은 설정 프로퍼티(instanceMaxRequests)에 의해 조절됩니다.

 

이 값은 FastCGI가 리사이클링 되기 전에 몇 개의 요청을 처리할 것인지를 정하게 됩니다.

 

PHP에서도 설정할 수 있습니다. PHP_FCGI_MAX_REQUESTS라는 것으로 설정하게 됩니다.

 

만약 instanceMaxRequests의 값을 PHP_FCGI_MAX_REQUESTS의 값보다 같거나 작게 설정하면 PHP의 리사이클은 절대 실행 되지 않습니다.

 

파라미터 값이 설정되지 않으면 디폴트 값을 사용하게 됩니다.

  • instanceMaxRequests: 200
  • PHP_FCGI_MAX_REQUESTS: 500


파라미터 값을 설정하려면 아래와 같은 명령문을 사용하시면 됩니다.


c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /[fullPath='c:\{php_folder}\php-cgi.exe'].instanceMaxRequests:10000


c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /
[fullPath='c:\{php_folder}\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']

 

위 내용은 아래 IIS Manager admin Pack을 설치 하시면 더 쉽게 설정 할 수 있습니다.

 

http://www.iis.net/downloads/default.aspx?tabid=34&i=1682&g=6

 

 

다운 받아서 설치 합니다.

기본 설치로 설치하시면 되며, 인터넷 정보 서비스 관리자를 다시 껏다가 키게 되면 설정가능 합니다.

 

IIS에서 홈을 선택하시면 FastCGI Settings 라는 메뉴가 나타납니다.

 

 

더블 클릭 하여 선택 한 후 C:\php\php-cgi.exe를 선택하고 Edit를 누릅니다.

 

InstanceMaxRequests 를 200에서 10000으로 변경합니다.

  

 

EnvironmentVaribles 에 컬렉션을 선택하여 엽니다.

그리고 추가

Name : PHP_FCGI_MAX_REQUESTS

Value : 10000

으로 설정합니다.

 

이렇게 하시면 위와 동일한 설정이 되게 됩니다.

 

그리고 REQUEST_URI 서버 변수에 종속된 PHP 응용 프로그램이 IIS(Internet Information Services) 7.0에서 실패하는 문제를 해결하기 위하여 아래 업데이트를 설치 합니다.

 

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=d0343911-1775-4aef-8c99-5f13862ac386

 

 

그리고 권고 사항입니다.

 

PHP 웹사이트의 보안을 위해 다른 사이트와 격리 시켜야 합니다.

. 웹사이트 마다 어플리케이션 풀을 각자 할당
. 어플리케이션 풀 아이덴티티에 사용자 계정 사용
. 어플리케이션 풀 아이덴티티를 사용하기 위해 Anonymous 사용자 설정
. FastCGI의 impersonation 설정 확인 (fastcgi.impersonate = 1)

 

PHP 보안강화를 위한 추천 항목

  1. Disable remote URL's for file handling functions:
    • Set allow_url_fopen=Off
    • Set allow_url_include=Off
  2. Disable register_globals:
    • register_globals=Off
  3. Restrict where PHP can read and write on a file system, e.g.:
    • open_basedir="c:\inetpub\"
  4. Disable safe mode:
    • safe_mode=Off
    • safe_mode_gid=Off
  5. Limit script execution time:
    • max_execution_time=30
    • max_input_time=60
  6. Limit memory usage and file sizes:
    • memory_limit=16M
    • upload_max_filesize=2M
    • post_max_size=8M
    • max_input_nesting_levels=64
  7. Configure error messages and logging:
    • display_errors=Off
    • log_errors=On
    • error_log="C:\path\of\your\choice"
  8. Hide presence of PHP:
    • expose_php=Off

 

서로 다른 버젼의 PHP를 IIS7에서 구성하는 방법 - PHP4와 PHP5를 하나의 웹서버에서 구성하는 방법.

http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/#BestPractices

 

여러 웹사이트별 PHP 구성

http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/#Per-site_PHP_configuration

 

URL Rewrite

http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691


FastCgi on Server Core
설정방법은 아래 경로를 참조 하여 주십시오.

http://nimsgern.pe.kr/blogs/nims/archive/2008/03/23/fastcgi-on-server-core.aspx

등이 있습니다..

 

이상 php를 windows 20008 Server 혹은 Vista에서 설정하는 방법이었습니다.

감사합니다~

  1. 미츠루 2009.09.19 16:54

    감사해요 ^^
    덕분에 잘 해결했습니다.. =ㅅ=


음..
찾다 보니 나오는 군요 *_*;;

우선 링크는 아래와 같습니다.

http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1552

dll을 다운 받으시고.
위 내용을 축약 하게 되면 아래와 같습니다.

  1. Download the IIS7BackupRestore.dll.(다운로드 한다. 제가 첨부파일로 걸어 놓앗습니다.)
  2. From inetsrv folder Drag and Drop the IIS7BackupRestore.dll into the Global Assembly Cache (C:\Windows\assembly) or use GacUtil -i IIS7BackupRestore.dll to install it to the GAC. (GAC에 등록한다. 방법은 사용드라이브\Windows\assembly에 드레그 해서 집어 넣습니다.
  3. Under File Menu, browse for the file %WinDir%\System32\InetSrv\config\Administration.config. (%WinDir%\System32\InetSrv\config\Administration.config에 있는 Config 파일을 아래와 같이 추가 수정합니다.)
  4. Search for the <moduleProviders> section and add the following (<moduleProviders>라는 놈을 찾아서 그 하위에 아래 코드를 넣어 줍니다.)

    <add name="IIS7BackupRestoreUI" type="IIS7BackupRestoreUI.MyModuleProvider, IIS7BackupRestoreUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=db9daa3d2ea5f6fd" />

  5. Search for the <modules> section and add the following (<location path="."> -- > <modules>을 찾아서 또 아래 넣어 줍니다.)

    <add name="IIS7BackupRestoreUI" />

  6. Open Inetmgr and You will see the module listed in your IIS 7 Manager if you would've followed the above steps properly.
  7. 아래와 같이 Backup Restore 가 생성됩니다.
  8. 헌데 저는 클릭하니 바로 창이 꺼지더군요..
  9. 그래서 D:\Windows\System32\inetsrv\appcmd.exe add backup "backups" 라고 실행창에서 실행 했습니다.
  10. 그렇게 한 후에 잘 나오는 군요…
  11. D:\Windows\System32\inetsrv\backup\backups 라는 폴더가 생성 되고 안에

    저런 파일이 생깁니다..
    이걸 포맷한 후에 고대로 만들어서 넣어 놓으시면 바로 복구 되리라고 저는 생각합니다..

지금 포멧을 하기 전 상태라 복구 여부는 차후에 말씀 드리겠습니다.
감사합니다….

테스트 해 본 결과.. 럭셔리 하게 잘 복구 됩니다..
아울러 응용프로그램 풀도 제가 셋팅했던 그 모습 그 대로~ 복구 됨을 알려 드립니다.

감사합니다.

  1. angeleyes 2010.04.28 18:02

    cmd
    cd windows\system32\inetsrv
    appcmd add backup "test"
    appcmd restore backup "test"

IIS 6.0에서 잘 돌아가던 놈이..
IIS 7.0에서 페이지가 뜨지도 않는 현상으로 인해  ㅡ.ㅡ;;;;;;;;
고생좀 했습니다...

알고보니..

아키텍쳐가 변경되면서.
기존 코드에 대해서 수정을 하던지.

응용 프로그램 풀의 관리되는 파이프라인 모드를 변경하는 작업이 필요합니다.
통합이 Default, 클래식으로 변경하시면 되는데...

http://technet.microsoft.com/ko-kr/magazine/2008.07.iis7.aspx

여기 한번 보시고요~

클래식은 aspnet_isapi.dll을 사용하여 IIS 6.0 처럼 돌아가는거라고...............

자세한건 역시 읽어 보셔요~

+ Recent posts