웹 사이트는 오늘날 가장 일반적인 유형의 인터넷 콘텐츠입니다. 그러나 가능한 최대의 관객에게 웹 사이트가 표시되도록하려면 웹 서버에 웹 사이트를 호스팅해야합니다. 어떻게? Windows 인터넷 정보 서비스 (Windows IIS)를 고려해보십시오. 이는 웹 호스팅에 대한 인기있는 선택 사항입니다.
이 자습서에서는 GUI 또는 명령 줄 환경을 통해 Windows IIS를 시작하는 기본 사항을 배우게됩니다!
계속 읽어보고 Windows IIS로 웹 애플리케이션을 관리하는 방법을 더욱 향상시키세요!
전제 조건
이 자습서는 실습을 통한 데모입니다. 따라오려면 다음이 있는지 확인하십시오:
- A Windows machine – This tutorial uses Windows Server 2012 since it’s stable and available at a low cost (or free). But you can also use Windows 10 for this tutorial.
- Windows 기계에 설치된 Visual C++ 배포. IIS는 PHP 페이지를 올바르게 렌더링하기 위해 Visual C++을 필요로합니다.
Windows Server에 Windows IIS 설치
IIS 웹 서버는 Windows 운영 체제에서 웹 사이트와 서비스를 호스팅하기 위한 풍부한 기능과 확장 가능성을 제공합니다. 그러나 IIS를 사용하기 전에 Windows 기계에이 도구를 먼저 설치해야합니다.
Windows Server에 Windows IIS를 설치하려면 다음을 수행하십시오:
1. 실행 상자를 열려면 Ctrl+R을 누르고 ServerManager를 입력 한 다음 Enter를 누릅니다.
이 작업은 서버 관리자 대시 보드를 엽니다. IT 관리자는이 GUI 대시 보드를 사용하여 서버 관리와 관련된 다양한 일상 업무를 수행합니다.

2. 서버 관리자에서 “역할 및 기능 추가” 링크를 클릭하여 마법사를 열고 로컬 서버에 역할 서비스와 기능을 추가할 수 있습니다.

3. 다음으로 시작하기 전 페이지의 정보를 읽고 “다음”을 클릭하십시오.
또한 기본적으로 이 페이지를 다시 보지 않으려면 “기본적으로 이 페이지 건너뛰기” 옵션을 선택할 수 있습니다.

4. 이제 설치 유형 페이지에서 첫 번째 옵션(역할 기반 또는 기능 기반 설치)을 선택하고 “다음”을 클릭하십시오.
이 옵션은 대부분의 경우에 권장되며 표준 방식으로 특정 역할, 역할 서비스 및 기능을 추가하는 방법을 안내합니다.
두 번째 옵션(원격 데스크톱 서비스 설치)을 선택하는 경우 설치할 필요가 있는 역할, 서비스 및 기능을 수동으로 선택해야 합니다.

5. 서버 풀에서 서버를 선택하고 “다음”을 클릭하십시오.
분산 설치를 위해 여러 서버를 선택할 수도 있지만, 이 튜토리얼의 범위를 벗어나는 작업입니다.

6. 다음으로, 확장 가능한 웹 애플리케이션 인프라를 위해 서버 역할 페이지에서 웹 서버(IIS) 확인란을 선택하고 “다음”을 클릭하십시오.

7. 기본값을 선택한 채로 “다음”을 클릭하십시오. 이 작업은 Windows에 모든 필요한 하위 기능을 설치하도록 지시하며, 이에는 ASP.NET, 정적 콘텐츠 및 기본 문서가 포함됩니다.

8. 웹 서버 역할(IIS)에 대한 자세한 정보를 검토하고 “다음”을 클릭하십시오.

9. 역할 서비스 페이지에서 기본 선택 항목을 유지한 채로 응용 프로그램 개발 노드를 확장하고 CGI 확인란을 선택한 다음 “다음”을 클릭하십시오.
이 옵션은 웹 서버와 외부 응용 프로그램을 연결하는 표준 방법인 CGI(Common Gateway Interface) 지원을 설치합니다.

10. 설치 설정을 구성한 후에는 선택한 역할 및 기능을 설치하려면 설치 단추를 클릭합니다.

11. 설치가 완료되면 아래에 표시된대로 마침 단추를 클릭하여 마법사를 종료합니다.
여기 있습니다! 서버에 Windows IIS를 성공적으로 설치했습니다.

12. 마지막으로 좋아하는 웹 브라우저를 열고 http://localhost/.로 이동합니다.
모두 정상적으로 진행되면 아래와 같은 기본 IIS 페이지가 표시되며 웹 서버가 실행 중임을 확인할 수 있습니다.

PHP 설치 및 IIS를 PHP 요청 처리에 대한 구성
서버에 Windows IIS를 성공적으로 설치했지만 서버에 페이지를 배포할 방법이 필요합니다. 이 튜토리얼에서는 PHP를 설치하고 IIS를 PHP 요청 처리에 대해 구성합니다.
서버에 PHP를 설치하려면:
1. PHP 릴리스 다운로드 페이지로 이동합니다. 작성 시점에서 가장 최신 안정 릴리스는 PHP 8.1입니다.
요청 당 하나의 스레드를 사용하는 IIS 때문에 Non Thread Safe(NTS) ZIP 패키지를 다운로드하십시오. 스레드 안전 (TS) 패키지는 IIS FastCGI를 위한 것으로, PHP를 멀티스레드 환경에서 실행할 수 있게 합니다.

2. 다운로드한 PHP 아카이브를 서버의 PHP 디렉토리(C:\PHP\)에 압축 해제합니다.
아카이브를 압축 해제 한 후에는 웹 애플리케이션을 관리하고 배포하기 위해 IIS를 설치하고 구성해야합니다.

3. 서버 관리자를 열고 대시 보드 → 도구 → 인터넷 정보 서비스 (IIS) 관리자를 선택합니다. 이 작업은 IIS 관리자 콘솔을 열어 IIS 설정을 구성하고 웹 사이트를 만들고 관리하며 웹 애플리케이션을 배포할 수 있습니다.

4. 이제 로컬호스트 (연결 패널)를 선택하고 핸들러 매핑을 두 번 클릭하여 사용 가능한 핸들러 매핑 목록에 액세스합니다.

5. 핸들러 매핑 페이지에서 오른쪽 패널에서 Add Module Mapping을 클릭하면 Add Module Mapping 대화 상자가 열립니다.

6. 다음으로 다음과 같이 새 매핑을 구성하십시오:
- 요청 경로 – 모든 요청을 전달하기 위해 *.php를 입력하여 IIS에게 .php로 끝나는 모든 요청을 PHP 프로세서 모듈로 전달하도록 지시합니다. 와일드 카드 기호 (*)를 사용하면 각 PHP 파일에 대한 핸들러 매핑을 추가하지 않아도 시간을 절약할 수 있습니다.
- 모듈 – 요청을 처리하기 위해 FastCGI 모듈을 지정하기 위해 FastCgiModule을 선택합니다.
- 실행 파일 – php-cgi.exe 파일의 전체 경로를 입력합니다. 이 예에서 경로는 C:\PHP\php-cgi.exe입니다.
- 이름 – 고유한 모듈 매핑 이름을 제공하지만이 자습서에서는 PHP_FastCGI를 사용합니다.
- 요청 제한을 구성하기 위해 요청 제한을 클릭합니다.

7. 확인란을 선택하고 파일 또는 폴더 옵션을 선택합니다. 이 옵션은 핸들러 매핑이 서버의 파일에만 적용되도록합니다.

8. 동사 탭으로 이동하여 모든 동사 옵션을 선택하십시오. 이 옵션은 IIS에 모든 종류의 HTTP 요청(예: GET, POST 및 HEAD)을 PHP 프로세서 모듈로 전달하도록 지시합니다.

9. 이제 액세스 탭에서 스크립트 옵션을 선택하고 확인을 클릭하십시오. 이 옵션은 PHP 페이지가 직접 제공되는 정적 파일이 아니라 실행되어야 하는 스크립트임을 IIS에 알려줍니다.

10. 모듈 매핑 추가로 돌아가서 새 모듈 매핑을 추가하려면 확인을 클릭하십시오.

11. 마지막으로 관리자 권한으로 PowerShell을 열고 Windows IIS를 다시 시작하려면 IISRESET 명령을 실행하십시오. 이 동작은 새 핸들러 매핑이 적용되도록 필요합니다.

첫 번째 웹사이트 배포
PHP가 설치되어 IIS가 구성되었으므로 가장 흥미로운 부분인 웹사이트를 배포하는 단계입니다. 그러나 먼저 배포할 웹사이트가 필요합니다. 이 예제에서는 IIS 서버에 기본 PHP 페이지를 만들고 배포합니다.
1. 웹사이트의 루트 디렉토리에 새로운 index.php 파일을 즐겨 사용하는 텍스트 편집기에서 만듭니다. 이 예제에서는 웹사이트의 루트 디렉토리가 C:\inetpub\wwwroot\입니다.
.php 확장자는 index.php 파일이 PHP 프로세서 모듈에 의해 처리되는 PHP 페이지임을 IIS에 알립니다.
2. 그 다음, 새로운 index.php 파일에 다음 코드를 추가하고 변경 사항을 저장한 다음 파일을 닫습니다.
아래 코드는 IIS에게 브라우저에서 PHP 페이지에 간단한 “Hello World” 메시지를 표시하도록 알립니다.
3. 마지막으로 웹 브라우저에서 새 탭을 열고 http://localhost/index.php 로 이동하여 로컬 IIS 서버에서 index.php 페이지를 요청합니다.
모든 게 잘되면 브라우저에서 index.php 페이지에 “Hello World!” 메시지가 표시됩니다.

명령 줄 환경을 통한 Windows IIS 관리
CLI를 사용하는 큰 팬이에요? 문제 없습니다! GUI 외에도 명령 프롬프트를 사용하여 IIS를 관리할 수 있습니다. 이 도구를 사용하면 사이트, 응용 프로그램, 가상 디렉터리, 응용 프로그램 풀 등 IIS의 거의 모든 측면을 관리할 수 있습니다.
이 튜토리얼에서는 IIS를 관리하기 위한 몇 가지 기본 명령에 대해 살펴볼 것입니다. 그러나 사용 가능한 모든 AppCmd.exe 명령의 완전한 목록은 공식 Microsoft 문서를 확인하세요.
1. 관리자 권한으로 명령 프롬프트를 열고 아래 명령을 실행하여 IIS 서버에 있는 모든 웹 사이트를 나열합니다.
현재 서버에서 실행 중인 모든 사이트 목록과 각 사이트에 대한 기본 정보(ID, 상태 등)를 확인할 수 있습니다.
너무 일반적하다고요? 문제 없어요! 다음 단계에서 특정 웹 사이트에 대한 정보를 자세히 확인하려면 AppCmd.exe를 사용할 수도 있습니다.

2. Default Web Site에 대한 모든 정보를 얻으려면 아래 명령을 실행하세요.

3. 이제 특정 웹 사이트를 중지하고 모든 중지된 웹 사이트(/state:Stopped)를 나열하는 다음 명령을 실행하세요.
중지된 상태를 다른 사이트 상태로 대체할 수도 있습니다. 예를 들어 시작 중, 실행 중 또는 알 수 없는 상태 등이 있습니다.

4. 이제 여러 기준을 공백으로 구분하여 결과를 필터링하는 아래 명령을 실행하세요.
아래 명령은 중지된 상태(/state:Stopped)이고 서버 수준 자동 시작이 활성화된(/serverAutoStart:true) 모든 사이트 목록을 표시합니다.
5. 마지막으로 세 번째 단계에서 중지한 웹 사이트(“Default Web Site”)를 시작하는 명령을 실행하세요.

결론
Windows IIS를 통해 웹 사이트를 관리하는 방법을 살펴보았습니다. 또한이 튜토리얼에서는 Windows Server에 IIS를 설치하고 구성하여 기본 PHP 웹 사이트를 배포하고 테스트하는 방법을 배웠습니다. Windows IIS는 GUI 및 명령줄 환경을 통해 웹 사이트를 관리할 수 있는 다재다능한 도구입니다.
이 새롭게 알게 된 지식으로 당신은 IIS에서 웹사이트와 응용 프로그램을 구축할 준비가 되었습니다! 왜 다음에는 IIS에서 워드프레스 사이트를 생성하는 방법을 배우지 않으시겠습니까? IIS에서 워드프레스 사이트를 생성하는 방법 을 알아보세요.