(1) PHP :  “short_open_tag” 이슈 
short_open_tag는 “<? PHP코드 ?>”라는 PHP 시작 선언자와“<?php PHP코드 ?>” 시작 선언자를 사용할지 여부를 결정하는 설정입니다. 이 설정이 APM 특정 버전이나 재배포 패키지에서 on으로 되어 있어 “<?” 시작 선언자를 사용 가능하게 되어있으나, PHP 공식 버전에서는 off로 되어 있기 때문에 발생합니다.(PHP 공식 가이드와 차이가 있을 수 있습니다.)  
해결방안 
php.ini 파일의 해당 short_open_tag 설정을 on으로 시켜 주시면 해결되며, 코드를 이용하실 경우 권한 등에 문제가 없다면 ini_set('short_open_tag','On');  처리도 가능합니다. 소견으로, 쉽지 않겠습니다만 장기적인 PHP 어플리케이션 호환성을 위해 코드를 수정하시는 것도 한 방법일 것입니다. 


(2) PHP : “error_reporting”  설정 관련 PHP 오류 
phpschool의 강좌 게시판에 올려주신 질문 인데요. 마찬가지로, PHP의 공식 버전은 이 error_reporting  설정이 E_ALL로 되어 있습니다. 
”error_reporting = E_ALL”   이렇게 기본 설정이 되어 있으실 거에요. E_ALL 설정은 대단히 엄격해 변수 선언 후 사용 여부 까지 체크하게 되어 있을 수 있습니다. 마찬가지로, 공식버전과 달리 APM 특정 버전이나 사용자 패키지는 너무 엄격하다고 판단해서인지 설정이 바뀌어져 있을 수 있는데요. 이경우 아래처럼 설정하시면 해결 가능합니다. 
해결방안 
php.in 파일의 설정을 ”error_reporting = E_ALL ^ E_NOTICE”  로 변경 하시면 됩니다. 
또는, 코드로 처리하실 경우는 PHP 시작파일 최상단에 
@error_reporting(E_ALL ^ E_NOTICE); 
코드를 삽입해 주시면 됩니다.

 


(3) MySQL : “sql-mode”가 “STRICT_TRANS_TABLES” 로 설정되어 있어 SQL 쿼리시 오류가 발생 
MySQL을 공식 사이트가 아닌 특정 버전의 APM이나 사용자 설정 패키지를 이용하실 경우와 마찬가지 이슈 입니다. 공식 사이트에서 다운로드 받으신 MySQL의 my.ini 파일의 기본 “sql-mode”가 “STRICT_TRANS_TABLES”로 설정되어 있기 때문에 삽입 처리 등에 제약이 존재하게 됩니다. 예를들면, a1 이라는 정수형 필드가 있다고 할때 a1 필드에 $a1 이라는 변수값을 insert 하거나 update 할 경우 $a1 값이 빈값(empty value)이거나 형(type)에 맞지 않을 경우 - 정수형 필드에 문자열을 입력하거나 하는 경우, 또는 할당된 범위를 초과할 경우 등등.. - 에러를 뱉어내게 됩니다. 
해결방안 
마찬가지로, my.ini 파일의 STRICT_TRANS_TABLES 값을 수정하거나 아래 방법으로 쿼리 실행 구문 앞에 sql_mode 처리를 이요하시면 됩니다. 
mysql_query("sql_mode=''",$DB_CONNECT);

http://phpschool.com/gnuboard4/bbs/board.php?bo_table=teach&wr_id=2473&page=2

http://www.sqler.com/257700


1) 시작 - 제어판 - 시스템 및 보안 - Windows Update 메뉴를 사용하여 중요 업데이트를 설치합니다.


IIS 를 설치하는 데는 시스템 재시작이 필요하지 않지만 중요 업데이트 설치 후에는 필요에 따라 시스템 재시작이 필요할 수 있습니다. 보안을 위해서 이와 같은 방법으로 정기적으로 보안 업데이트를 적용하는 것을 권장합니다.   


이것으로 쉽게 IIS7 설치가 완료 되었습니다. IIS 7.0 에서는 이외에도 Administration Pack 1.0 을 추가 설치하였습니다만 IIS 7.5 에서는 이미 확장 기능(FastCGI 설정, 요청 필터링, 구성 편집기 등)이 추가되어 있음을 확인할 수 있습니다. 인터넷 정보 관리자를 실행(시작 - 관리도구 - IIS 관리자) 하여 제공되는 기능을 살펴볼 수 있습니다.    


071210_0053_11PHP9.png


      


[PHP 설치 및 테스트]    


다음은 PHP 다운로드 받고 설치하는 과정입니다. PHP 다운로드는 http://www.php.net/downloads.php 사이트를 통해서 Windows Binaries 를 사용해야 합니다.    


1. Non-thread-safe zip 패키지 다운로드


웹 사이트에 접속해서 보면 아래 그림과 같이 Windows Binaries 에도 여러 가지 종류의 패키지가 있는 것을 확인할 수 있으며 IIS 7 에서 구동 시 확장 기능 사용과 성능 향상 효과를 위해 5.2.X Non-thread-safe zip package 를 다운로드 받습니다.    


071210_0053_11PHP10.png


      


2. 패키지 압축 해제


가. 다운로드 받은 파일을 C:\Program Files\PHP 폴더에 압축을 해제합니다.


071210_0053_11PHP11.png


      


3. PHP.INI 설정


C:\Program Files\PHP 폴더에 있는 php.ini-recommended 파일을 php.ini 파일로 복사한 뒤 메모장을 통해 아래와 같이 설정을 변경합니다. 


fastcgi.impersonate = 1


cgi.fix_pathinfo = 1


Cgi.force_redirect = 0


extension_dir = "./ext"


extension=php_gd2.dll



 가. fastcgi.impersonate = 1 
  
FastCGI는 클라이언트 호출에 대한 가상 보안 토큰을 지원하며 IIS 환경에서는 1로 설정합니다. 

 
나. cgi.fix_pathinfo = 1 
  
PATH_INFO/PATH_TRANSLATED 를 CGI 환경에서 지원하며 1로 설정할 경우 PHP CGI가 규격에 맞게 경로를 수정합니다.

 
다. Cgi.force_redirect = 0 
  
일반적으로 웹 서버에서 PHP 를 사용할 때 보안을 제공하기 위해 필요하지만 IIS 환경에서는 사용하지 않는 것을 권장합니다.

 
라. extension_dir = "./ext" 
  
확장 모듈(extensions) 파일들이 위치한 폴더 경로입니다.

 
마. extension=php_gd2.dll 
 
 GD Graphics library 사용을 위해 활성화합니다. 


4. 모듈 매핑 추가


가. 인터넷 정보 서비스 관리자 - 연결 - 서버이름 - 기능보기 - 처리기 매핑


071210_0053_11PHP12.png


   


나. 모듈 매핑 추가


1) 요청 경로 : *.php


2) 모듈 : FastCgiModule


3) 실행 파일(옵션) : "C:\Program Files\PHP\php-cgi.exe"


4) 이름 : PHP FastCGI


071210_0053_11PHP13.png


   


5) 요청 제한 클릭


가) 요청이 다음에 매핑되는 경우에만 처리기 호출 : 파일 또는 폴더


071210_0053_11PHP14.png


   


   


5. FastCGI 응용 프로그램 풀, 환경 변수 설정


가. FastCGI는 Native PHP 가 리사이클링 되기 전에 Php-cgi.exe 프로세스를 리사이클링(Recycling) 하게 됩니다. '인스턴스 MaxRequests' 속성 변경을 통해 리사이클링 되기 전에 요청 처리 개수를 설정할 수 있습니다.


1) 인터넷 정보 서비스 관리자 - 연결 - 서버이름 - FastCGI 설정


071210_0053_11PHP15.png


   


2) php-cgi.exe 편집 - '인스턴스 MaxRequests' : 10000


071210_0053_11PHP16.png


   


나. Native PHP 프로세스 리사이클링 속성 변경


1) FastCGI 응용 프로그램 편집창에서 '환경 변수' 속성을 클릭합니다.


2) 추가 - Name : PHP_FCGI_MAX_REQUESTS, Value : 10000


071210_0053_11PHP17.png


(기본값 : 인스턴스 MaxRequests = 200, PHP_FCGI_MAX_REQUESTS = 500)


   


   


6. 테스트 웹 사이트 생성


가. 인터넷 정보 서비스 관리자 - 사이트 - 웹 사이트 추가...


071210_0053_11PHP18.png


   


나. 웹 사이트 추가


1) 사이트 이름 : PHP Site


2) 실제 경로 : C:\WWW


3) 포트 : 8080


071210_0053_11PHP19.png


   


   


7. PHPINFO.PHP 스크립트 생성


가. 메모장 실행 후 C:\WWW 폴더에 PHPINFO.PHP 파일을 생성하고 아래 스크립트를 입력합니다.


나. 스크립트


<?php


phpinfo();


?>






 

'Infrastructure' 카테고리의 다른 글

강의자료  (0) 2011.11.18
엑셀 워크시트 합치기  (0) 2011.08.25
IIS 6.0에 rewrite mod 적용하기  (0) 2011.07.27
Introduction to IIS 7 Architecture  (0) 2011.07.25
windows rsync  (0) 2011.07.25

+ Recent posts