IIS7 설치
IIS7 이상 버전을 사용하려면 Vista 또는 Server 2008을 써야 한다. 필자는 Vista만 써봤으므로 그것을 기준으로 하겠다.
- 제어판 -> 프로그램 -> Windows 기능 추가/제거로 들어가 Windows 기능 창을 연다.
- 인터넷 정보 서비스 -> 웹 관리 도구를 체크한다. (FTP 등 필요한 것을 더 체크해도 된다.)
- 확인 눌러서 설치.
- 웹브라우저에서 http://localhost 또는 http://127.0.0.1을 열고 환영 페이지가 나오는지 확인한다.
기본 웹디렉토리는 C:\inetpub\wwwroot\이므로, UAC 없이 접근하려면 이 폴더의 속성 -> 보안 탭에서 자신의 사용자 계정에 모든 권한을 허가해주면 좀더 편하게 쓸 수 있다.
※ Vista SP1부터는 IIS7 자체에 FastCGI 모듈이 내장되어 있으므로 그것을 쓰면 된다.
PHP 설치
-
php.net에서 최신 PHP 버전을 받아 설치한다. (5.2 이상 버전 권장, 글 쓰는 현재 5.2.6이 최신 버전임)
이때 installer보다는 zip package를 권장하는데, 그 이유는 isntaller는 설치는 편리하지만 확장 기능(gd, mysql 등등)이 하나도 안 들어있기 때문이다. 나중에 zip package를 받아 확장기능 폴더만 복사해넣어도 되긴 하나 한 번에 하는 게 편하니까 zip package로 바로 하자.- FastCGI를 이용하면 각 연결을 각각의 독립된 프로세스가 처리하게 되므로, 최대한의 성능을 내기 위해 non-thread-safe 패키지를 이용하는 것이 좋다.
- 적당한 디렉토리에 압축을 푼다.
zip으로 받았을 경우는 그냥 편하게 C:\php에 풀지만, installer로 하면 C:\Program Files\PHP에 설치되므로 참고한다. 여기서는 C:\PHP에 깔았다고 가정하겠다. - IIS 관리자를 열고 왼쪽의 트리에서 사이트 -> Default Web Site를 클릭하면 오른쪽에 관련 작업 아이콘들이 나타난다.
- 그중 [처리기 매핑]을 더블클릭하고, 오른쪽의 작업 메뉴에서 [모듈 매핑 추가...]를 누른다.
- 추가 대화상자에서 [요청 경로] : "*.php", [모듈] : "FastCgiModule", [실행 파일 (옵션)] : "C:\PHP\php-cgi.exe", [이름] : "적당히 알아서. 필자는 PHP via FastCGI로 설정했음." 와 같이 설정하고 확인을 누른다.
- 웹디렉토리(wwwroot)에 info.php를 만들고 "<?php phpinfo(); ?>"라고 써넣은 다음 http://localhost/info.php를 쳐보자.
웹브라우저에 php 정보 화면이 나오면 잘 된 것이다.
Tips!
- 파일 업로드 기능 사용시 권한 관련 문제를 해결하려면 php.ini에서 uploaded_tmp_dir을 기본값이 아닌 다른 것으로 바꿔주는 것이 좋다. (IIS_IUSRS가 모든 권한을 가지는 디렉토리로)
- php.ini의 설정을 변경하고 이것을 적용하려면, 웹사이트가 아닌 그 웹사이트에 연결된 응용프로그램 풀을 재생(refresh)해주면 된다. ISAPI 핸들러 형태로 php를 사용할 경우는 웹서버를 재시작하면 되지만, FastCGI의 경우 php가 외부 프로세스 형태로 실행되므로(IIS7의 기본 설정을 이용할 경우 NETWORK SERIVCE 사용자 권한을 가진다) 이를 관리해주는 응용프로그램 풀을 다시 로드해야 한다.
- FastCGI를 위한 php.ini 추가 설정 참고:
fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
extension_dir = "./ext"
MySQL 설치
- mysql.com에서 적당한 버전을 받아 설치한다. 64bit 운영체제를 사용하더라도, php의 64bit용 Windows binary가 제공되지 않으므로 32bit를 쓰는 것이 편하다.
패키지 중에 Windows Essentials를 받으면 무리 없다.
(64bit와도 연동은 가능하지만 설정 과정에서 약간의 귀찮음이 있다.) - 설치 완료 후 MySQL Server Instance Config Wizard를 실행한다.
설정 과정에서 root 암호 및 기본 인코딩(기본 인코딩은 UTF-8 권장) 등을 지정하고, 커맨드 프롬프트에서 바로 실행할 수 있도록 PATH 추가 옵션을 체크해준다. - PHP에서 인식시키기 위해, C:\PHP\php.ini에서 주석처리되어 있는 extension=php_mysql.dll을 주석 해제한다. (줄 앞에 붙은 세미콜론을 지워준다)
내용이 없으면 적당한 곳에 추가해주면 된다. 취향에 따라 gd, mysqli, curl 등등을 켜준다. - MySQL 설치된 폴더 안의 bin 폴더에 들어있는 libMYSQL.dll을 C:\Windows\System32 (32bit 윈도의 경우) / C:\Windows\SysWOW64 (64bit 윈도의 경우)에 복사한다.
- 다시 http://localhost/info.php를 열고 mysql 모듈이 잘 올라왔는지 확인한다. 만약 안 보일 경우 IIS 관리자에서 사이트를 재시작해준다.
- 커맨드 프롬프트에서 mysql -uroot -p를 실행하여 사용자 계정 등을 설정한다. 자세한 건 검색. -_-
- 간단한 php 스크립트를 만들어 접속 여부를 테스트해본다.
게시글 목록
| 번호 | 제목 |
|---|---|
| 28403 | |
| 28402 | |
| 28401 | |
| 28398 | |
| 28397 | |
| 28394 | |
| 4504 | |
| 26593 |
퍼블리셔
이경우 어떻게 해야할까요??
6
|
| 4502 |
개발자
포인트 어떻게 올리나여
1
|
| 18132 | |
| 28388 | |
| 4496 | |
| 4491 | |
| 4486 |
개발자
도대체...포인트는요...
4
|
| 4483 | |
| 4482 |
개발자
우와 멋져요~
|
| 4479 | |
| 18122 | |
| 18120 |
JavaScript
흔한 트위터,페이스북 퍼가기 자바스크립트
1
|
| 26590 |
퍼블리셔
우왕..퍼블리셔도 생겼네요~
2
|
| 18113 |
Linux
리눅스 FFMPEG 자동실행소스(자작임)
6
|
| 24419 |
기획자
리뉴얼 축하드립니다
1
|
| 4474 |
개발자
리자님 익스7로좀 봐주세용
4
|
| 4465 |
개발자
사이트 리뉴얼의 전말
8
|
| 4461 | |
| 4460 |
개발자
상큼해졌요~
|
| 4451 |
개발자
새로 바뀐 검색 어떠세요?
8
|
| 26589 |
퍼블리셔
이뻐요^^
|
| 4450 | |
| 4448 |
개발자
아니 홈피가 바꼈네요.
1
|
| 24418 |
기획자
너무예쁘게 바뀌었네요.^^
|
| 31037 | |
| 26390 | |
| 4446 |
개발자
오늘 가입했습니다.
1
|
| 26585 |
퍼블리셔
저는 디자이너 이지만요..
3
|
| 26581 | |
| 26578 | |
| 18098 |
PHP
웹 소스 긁어오기
14
|
| 4443 | |
| 18097 | |
| 26388 | |
| 18094 |
Mobile
스마트폰에서 영상소스는?
2
|
| 30596 |
HTML
레이아웃이 비뚤합니다.
3
|
| 26387 | |
| 18091 |
정규표현식
정규식으로 html 태그 지우기
2
|
| 4445 | |
| 18088 |
jQuery
이미지 슬라이더 만들어보았습니다.
2
|
| 18086 |
jQuery
순차애니메이션 질문좀 드리겠습니다.
1
|
| 18085 | |
| 18082 | |
| 18081 | |
| 18078 | |
| 18076 | |
| 18074 |
node.js
node.js 0.8.2 번역 문서
1
|
| 18072 |
jQuery
CSS3처럼 이미지 라운딩 기능의 제이쿼리
1
|
| 18070 |
jQuery
이 플래시메뉴처럼 바꿔 만들려면...
1
|
| 18069 | |
| 18066 |
Mobile
가로 폭 문제
2
|
| 18064 |
MySQL
MySQL 테이블명 대소문자 구분안하기
1
|
| 18057 | |
| 18056 |
Flash
플래시 네비 관련
|
| 30588 |
HTML
DIV의 justify 정렬 문제
7
|
| 18055 |
JavaScript
ie 에서는 되는데 크롬에서는 왜 안될까요?
|
| 18054 | |
| 30585 | |
| 18051 | |
| 18050 |
jQuery
이미지 슬라이드 질문 드립니다.
|
| 18048 |
Mobile
모바일 페이지 확대 축소 도움부탁려요
1
|
| 18047 | |
| 18044 |
JavaScript
HTTP 로그인 인증창에 대해 질문합니다 도와주세요ㅠㅠ
2
|
| 26386 | |
| 18042 | |
| 30580 | |
| 4425 | |
| 18039 |
JavaScript
자바에서...
2
|
| 18037 | |
| 18031 |
JavaScript
list.skin.php에서 자바스크립트 출력 문제 입니다.
5
|
| 18028 | |
| 18027 |
Mobile
모바일 사이트는 웹표준 코딩 할려면 어떻게 하나요
|
| 18022 |
JavaScript
JScript.Encode 복호화 방법
4
|
| 18018 |
MySQL
db 값이 가끔 안넘어가는경우가.....
3
|
| 18016 | |
| 18009 | |
| 4423 | |
| 18003 |
jQuery
메인 탭 롤링 배너 입니다.
5
|
| 18000 |
JavaScript
jQuery 쉽게 참고 할만한 사이트 없나요?
2
|
| 17999 |
node.js
NodeJS 추천사이트
|
| 17996 |
JavaScript
팝업창 관련 질문드려요!
2
|
| 17993 |
JavaScript
고수님들 도와주세요. "웹 페이지 오류 세부 정보"에러가 뜨는데
2
|
| 17989 | |
| 17987 | |
| 17986 | |
| 17985 |
jQuery
jquery 드롭다운메뉴 질문입니다.
|
| 17984 |
jQuery
JQuery 소스 해결 좀 부탁드립니다.
|
| 4411 | |
| 17979 | |
| 30576 | |
| 26383 | |
| 17975 | |
| 30569 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기