7

IIS7 + FastCGI + PHP + MySQL 설치 방법

· 13년 전 · 4953

IIS7 설치

IIS7 이상 버전을 사용하려면 Vista 또는 Server 2008을 써야 한다. 필자는 Vista만 써봤으므로 그것을 기준으로 하겠다.
  1. 제어판 -> 프로그램 -> Windows 기능 추가/제거로 들어가 Windows 기능 창을 연다.
  2. 인터넷 정보 서비스 -> 웹 관리 도구를 체크한다. (FTP 등 필요한 것을 더 체크해도 된다.)
  3. 확인 눌러서 설치.
  4. 웹브라우저에서 http://localhost 또는 http://127.0.0.1을 열고 환영 페이지가 나오는지 확인한다.
    기본 웹디렉토리는 C:\inetpub\wwwroot\이므로, UAC 없이 접근하려면 이 폴더의 속성 -> 보안 탭에서 자신의 사용자 계정에 모든 권한을 허가해주면 좀더 편하게 쓸 수 있다.
※ Vista SP1부터는 IIS7 자체에 FastCGI 모듈이 내장되어 있으므로 그것을 쓰면 된다.

PHP 설치

  1. php.net에서 최신 PHP 버전을 받아 설치한다. (5.2 이상 버전 권장, 글 쓰는 현재 5.2.6이 최신 버전임)
    이때 installer보다는 zip package를 권장하는데, 그 이유는 isntaller는 설치는 편리하지만 확장 기능(gd, mysql 등등)이 하나도 안 들어있기 때문이다. 나중에 zip package를 받아 확장기능 폴더만 복사해넣어도 되긴 하나 한 번에 하는 게 편하니까 zip package로 바로 하자.
    • FastCGI를 이용하면 각 연결을 각각의 독립된 프로세스가 처리하게 되므로, 최대한의 성능을 내기 위해 non-thread-safe 패키지를 이용하는 것이 좋다.
  2. 적당한 디렉토리에 압축을 푼다.
    zip으로 받았을 경우는 그냥 편하게 C:\php에 풀지만, installer로 하면 C:\Program Files\PHP에 설치되므로 참고한다. 여기서는 C:\PHP에 깔았다고 가정하겠다.
  3. IIS 관리자를 열고 왼쪽의 트리에서 사이트 -> Default Web Site를 클릭하면 오른쪽에 관련 작업 아이콘들이 나타난다.
  4. 그중 [처리기 매핑]을 더블클릭하고, 오른쪽의 작업 메뉴에서 [모듈 매핑 추가...]를 누른다.
  5. 추가 대화상자에서 [요청 경로] : "*.php", [모듈] : "FastCgiModule", [실행 파일 (옵션)] : "C:\PHP\php-cgi.exe", [이름] : "적당히 알아서. 필자는 PHP via FastCGI로 설정했음." 와 같이 설정하고 확인을 누른다.
  6. 웹디렉토리(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 설치

  1. mysql.com에서 적당한 버전을 받아 설치한다. 64bit 운영체제를 사용하더라도, php의 64bit용 Windows binary가 제공되지 않으므로 32bit를 쓰는 것이 편하다.
    패키지 중에 Windows Essentials를 받으면 무리 없다.
    (64bit와도 연동은 가능하지만 설정 과정에서 약간의 귀찮음이 있다.)
  2. 설치 완료 후 MySQL Server Instance Config Wizard를 실행한다.
    설정 과정에서 root 암호 및 기본 인코딩(기본 인코딩은 UTF-8 권장) 등을 지정하고, 커맨드 프롬프트에서 바로 실행할 수 있도록 PATH 추가 옵션을 체크해준다.
  3. PHP에서 인식시키기 위해, C:\PHP\php.ini에서 주석처리되어 있는 extension=php_mysql.dll을 주석 해제한다. (줄 앞에 붙은 세미콜론을 지워준다)
    내용이 없으면 적당한 곳에 추가해주면 된다. 취향에 따라 gd, mysqli, curl 등등을 켜준다.
  4. MySQL 설치된 폴더 안의 bin 폴더에 들어있는 libMYSQL.dll을 C:\Windows\System32 (32bit 윈도의 경우) / C:\Windows\SysWOW64 (64bit 윈도의 경우)에 복사한다.
  5. 다시 http://localhost/info.php를 열고 mysql 모듈이 잘 올라왔는지 확인한다. 만약 안 보일 경우 IIS 관리자에서 사이트를 재시작해준다.
  6. 커맨드 프롬프트에서 mysql -uroot -p를 실행하여 사용자 계정 등을 설정한다. 자세한 건 검색. -_-
  7. 간단한 php 스크립트를 만들어 접속 여부를 테스트해본다.
|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

+
제목 글쓴이 날짜 조회
13년 전 조회 2.3만
13년 전 조회 2,657
13년 전 조회 2.9만
13년 전 조회 2,225
13년 전 조회 2.3만
13년 전 조회 5,759
13년 전 조회 957
13년 전 조회 971
13년 전 조회 2,830
13년 전 조회 1,116
13년 전 조회 2,339
13년 전 조회 1,543
13년 전 조회 1,524
13년 전 조회 6,680
13년 전 조회 5,221
13년 전 조회 1,092
13년 전 조회 1,215
13년 전 조회 5,068
13년 전 조회 6,441
13년 전 조회 1,223
13년 전 조회 557
13년 전 조회 923
13년 전 조회 1,903
13년 전 조회 5,642
13년 전 조회 1,070
13년 전 조회 1,733
13년 전 조회 1,336
13년 전 조회 521
13년 전 조회 1,327
13년 전 조회 797
13년 전 조회 645
13년 전 조회 6,155
13년 전 조회 888
13년 전 조회 484
13년 전 조회 2,825
13년 전 조회 1,199
13년 전 조회 3,562
13년 전 조회 1,385
13년 전 조회 1,079
13년 전 조회 607
13년 전 조회 592
13년 전 조회 840
13년 전 조회 1,033
13년 전 조회 1,756
13년 전 조회 1,062
13년 전 조회 2,164
13년 전 조회 1,119
13년 전 조회 4,220
13년 전 조회 3,378
13년 전 조회 4,954
13년 전 조회 7,554
13년 전 조회 2,797
13년 전 조회 2,246
13년 전 조회 662
13년 전 조회 2,980
13년 전 조회 859
13년 전 조회 4,353
13년 전 조회 2,495
13년 전 조회 1,872
13년 전 조회 1,644
13년 전 조회 5,957
13년 전 조회 1,774
13년 전 조회 1,453
13년 전 조회 1,332
13년 전 조회 2,850
13년 전 조회 2,869
13년 전 조회 1,190
13년 전 조회 1,393
13년 전 조회 4,637
13년 전 조회 710
13년 전 조회 1,170
13년 전 조회 1,483
13년 전 조회 1,900
13년 전 조회 1,934
13년 전 조회 1,701
13년 전 조회 4,817
13년 전 조회 1,157
13년 전 조회 6,135
13년 전 조회 1,603
13년 전 조회 1,701
13년 전 조회 1,414
13년 전 조회 1,068
13년 전 조회 1,791
13년 전 조회 808
13년 전 조회 2,308
13년 전 조회 644
13년 전 조회 652
13년 전 조회 3,302
13년 전 조회 1,106
13년 전 조회 763
13년 전 조회 594
13년 전 조회 1,089
13년 전 조회 2,258
13년 전 조회 701
13년 전 조회 1,570
13년 전 조회 799
13년 전 조회 776
13년 전 조회 2,588
13년 전 조회 1,028
13년 전 조회 1,239
🐛 버그신고