BLOG main image
분류 전체보기 (65)
JSP (6)
Android (1)
ASP.NET (0)
MSSQL (4)
PHP (18)
ASP (11)
오픈 API (1)
HTML (2)
JavaScript (0)
Windows Programming (8)
컴퓨터교양 (14)
객체 지향 (0)
리뷰 및 생각 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2014. 4. 17. 04:40
[PHP]

서두
원래 apmsetup.com의 APMSETUP6/7 패키지를 이용하였는데, 오랜만에 사용해보니, 배너뜨고, 32비트 호환모드로 돌긴하나 Server Root 바꿨더니, 내가 뭘 잘못한건지 아파치 서비스 실행 안되고…
apmsetup.com의 PHP_Setup_for_IIS도 설치해보았으나, 뭔가 작동하지 않았습니다.
그동안 apmsetup.com 패키지들 잘 썼었는데… 감사드립니다.

여튼 그래서 IIS에 PHP를 붙였습니다. 그것도 아주 쉽게. WPI가 설치를 아주 쉽게 만들어 놓았습니다.


1. 먼저 IIS에서 CGI를 사용 할 수 있도록 설정한다.(참고로 필자는 윈도우즈7 64비트 사용 중 이다.)





2. 마이크로소프트 웹 플랫폼 설치관리자(WPI)를 설치하고 실행한다.
Microsoft Web Platform Installer 4.6


3. WPI 에서 PHP로 검색한다.
검색결과 중 “PHP 5.X용 Windows 캐시 확장”과 비슷한 프로그램을 설치한다.
(필자는 “IISExpress의 PHP 5.3용 Windows 캐시 확장 1.3” 을 설치했다.)


4. C:\inetpub\wwwroot 에 phpinfo.php 파일을 만들고, <?php phpinfo(); ?> 을 입력해주고 저장한다.
아래 파일은 위의 내용이 입력된 파일 입니다.
phpinfo.php

브라우저로 http://localhost/phpinfo.php 을 열어본다.
쭉쭉 스크롤 해보면 ctype, curl, gd, iconv, imap, mysql... 등
각종 라이브러리도 설치되었음을 볼 수 있다.



끝. 참고로 MySql도 WPI에서 검색해서 깔면 된다. 현재 5.5 버젼이 올라와있다.

혹시 뭔가 잘 안된다면, 아래 URL을 참고하세요.
http://technet.microsoft.com/ko-kr/library/hh994592.aspx

 




끝이였는데.. 막상 기존 PHP 페이지를 돌려보니 두가지 문제가 발생하였습니다.

문제1 – 메인화면을 열었더니..

보자마자 헐..
이것은 php 파일로 해석되지 않고, HTML로 해석되어 생긴 문제 입니다.
해결방법은 아래와 같습니다.

php.ini에서 short_open_tag=on 으로 설정하기
short_open_tag=off 로 설정하면 반드시 <?php 로 코딩해야 합니다.
short_open_tag=on 으로 설정해야만 <? 구문을 인식합니다.
대부분의 php페이지는 <? 으로 코딩되어 있습니다.(그누보드나 제로보드도 <? 으로 코딩되어 있습니다.)

phpinfo.php에서 short_open_tag을 찾아보면 Off로 되어 있음을 볼 수 있습니다.
이걸 On으로 바꿉니다.



메모장을 관리자 권한으로 실행하고 php.ini를 열어 short_open_tag=on으로 수정합니다.
(메모장으로 열 때 모든파일 표시하는거 잊지 마세요.)





문제2 – 그누보드 관리자화면 > 환경설정 > 기본환경설정을 변경하였더니..

보자마자 ㄷㄷㄷ..
문자가 많이 깨져있지만 쿼리를 날리다가 실패한 모습 입니다.
해결방법은 아래와 같습니다.

my.ini에서
;sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 처럼
주석 씌우기
strict 모드를 사용하지 않으면, 유효하지 않거나 누락된 데이터 값을 적당히 유효하게 변환시켜줍니다.
strict 모드를 사용하면, 변환없이 강력한 검사를 하기 때문에 이러한 에러가 발생한 것 입니다.
strict :
① 엄격한 ② 강력한 ③ 철저한 ④ 엄중한 ⑤ 지나친

메모장을 관리자 권한으로 실행하고 my.ini를 열어
;sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
이렇게 주석을 씌워줍니다.
(메모장으로 열 때 모든파일 표시하는거 잊지 마세요.)



mysql 서비스 다시 시작하기



끝!



다른 문제가 없다면.. 끝! ㅎㅎㅎ