Windows IIS (Internet Information Services) 시작하기

웹 사이트는 오늘날 가장 일반적인 유형의 인터넷 콘텐츠입니다. 그러나 가능한 최대의 관객에게 웹 사이트가 표시되도록하려면 웹 서버에 웹 사이트를 호스팅해야합니다. 어떻게? 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 대시 보드를 사용하여 서버 관리와 관련된 다양한 일상 업무를 수행합니다.

Launching the Server Manager

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

Initiating adding roles and features

3. 다음으로 시작하기 전 페이지의 정보를 읽고 “다음”을 클릭하십시오.

또한 기본적으로 이 페이지를 다시 보지 않으려면 “기본적으로 이 페이지 건너뛰기” 옵션을 선택할 수 있습니다.

Acknowledging the welcome page

4. 이제 설치 유형 페이지에서 첫 번째 옵션(역할 기반 또는 기능 기반 설치)을 선택하고 “다음”을 클릭하십시오.

이 옵션은 대부분의 경우에 권장되며 표준 방식으로 특정 역할, 역할 서비스 및 기능을 추가하는 방법을 안내합니다.

두 번째 옵션(원격 데스크톱 서비스 설치)을 선택하는 경우 설치할 필요가 있는 역할, 서비스 및 기능을 수동으로 선택해야 합니다.

Selecting installation type

5. 서버 풀에서 서버를 선택하고 “다음”을 클릭하십시오.

분산 설치를 위해 여러 서버를 선택할 수도 있지만, 이 튜토리얼의 범위를 벗어나는 작업입니다.

Selecting a destination server

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

Selecting the Web Server (IIS) role to install on the destination server

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

Confirming default selected features

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

Reviewing more information about the Web Server Role (IIS)

9. 역할 서비스 페이지에서 기본 선택 항목을 유지한 채로 응용 프로그램 개발 노드를 확장하고 CGI 확인란을 선택한 다음 “다음”을 클릭하십시오.

이 옵션은 웹 서버와 외부 응용 프로그램을 연결하는 표준 방법인 CGI(Common Gateway Interface) 지원을 설치합니다.

Selecting role services

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

Installing the selected roles and features

11. 설치가 완료되면 아래에 표시된대로 마침 단추를 클릭하여 마법사를 종료합니다.

여기 있습니다! 서버에 Windows IIS를 성공적으로 설치했습니다.

Finishing the roles and features installation

12. 마지막으로 좋아하는 웹 브라우저를 열고 http://localhost/.로 이동합니다.

모두 정상적으로 진행되면 아래와 같은 기본 IIS 페이지가 표시되며 웹 서버가 실행 중임을 확인할 수 있습니다.

Viewing the default IIS web page

PHP 설치 및 IIS를 PHP 요청 처리에 대한 구성

서버에 Windows IIS를 성공적으로 설치했지만 서버에 페이지를 배포할 방법이 필요합니다. 이 튜토리얼에서는 PHP를 설치하고 IIS를 PHP 요청 처리에 대해 구성합니다.

서버에 PHP를 설치하려면:

1. PHP 릴리스 다운로드 페이지로 이동합니다. 작성 시점에서 가장 최신 안정 릴리스는 PHP 8.1입니다.

요청 당 하나의 스레드를 사용하는 IIS 때문에 Non Thread Safe(NTS) ZIP 패키지를 다운로드하십시오. 스레드 안전 (TS) 패키지는 IIS FastCGI를 위한 것으로, PHP를 멀티스레드 환경에서 실행할 수 있게 합니다.

Downloading the PHP (NST) package

2. 다운로드한 PHP 아카이브를 서버의 PHP 디렉토리(C:\PHP\)에 압축 해제합니다.

아카이브를 압축 해제 한 후에는 웹 애플리케이션을 관리하고 배포하기 위해 IIS를 설치하고 구성해야합니다.

Unzipping the downloaded PHP archive to the PHP directory

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

Opening the IIS Manager console.

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

Accessing handler mappings

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

Initiating adding a module mapping

6. 다음으로 다음과 같이 새 매핑을 구성하십시오:

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

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

Selecting the invoke handler

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

Selecting all verbs to be handled

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

Selecting the required access by the handler

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

Adding the new module mapping

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

IISRESET 
Restarting the Windows IIS server

첫 번째 웹사이트 배포

PHP가 설치되어 IIS가 구성되었으므로 가장 흥미로운 부분인 웹사이트를 배포하는 단계입니다. 그러나 먼저 배포할 웹사이트가 필요합니다. 이 예제에서는 IIS 서버에 기본 PHP 페이지를 만들고 배포합니다.

1. 웹사이트의 루트 디렉토리에 새로운 index.php 파일을 즐겨 사용하는 텍스트 편집기에서 만듭니다. 이 예제에서는 웹사이트의 루트 디렉토리가 C:\inetpub\wwwroot\입니다.

.php 확장자는 index.php 파일이 PHP 프로세서 모듈에 의해 처리되는 PHP 페이지임을 IIS에 알립니다.

2. 그 다음, 새로운 index.php 파일에 다음 코드를 추가하고 변경 사항을 저장한 다음 파일을 닫습니다.

아래 코드는 IIS에게 브라우저에서 PHP 페이지에 간단한 “Hello World” 메시지를 표시하도록 알립니다.

<?php
header('Content-Type: text/html; charset=UTF-8');
echo '<html><head><title>Hello World</title></head><body>Hello world!</body></html>';

3. 마지막으로 웹 브라우저에서 새 탭을 열고 http://localhost/index.php 로 이동하여 로컬 IIS 서버에서 index.php 페이지를 요청합니다.

모든 게 잘되면 브라우저에서 index.php 페이지에 “Hello World!” 메시지가 표시됩니다.

Testing the PHP (index.php) page

명령 줄 환경을 통한 Windows IIS 관리

CLI를 사용하는 큰 팬이에요? 문제 없습니다! GUI 외에도 명령 프롬프트를 사용하여 IIS를 관리할 수 있습니다. 이 도구를 사용하면 사이트, 응용 프로그램, 가상 디렉터리, 응용 프로그램 풀 등 IIS의 거의 모든 측면을 관리할 수 있습니다.

이 튜토리얼에서는 IIS를 관리하기 위한 몇 가지 기본 명령에 대해 살펴볼 것입니다. 그러나 사용 가능한 모든 AppCmd.exe 명령의 완전한 목록은 공식 Microsoft 문서를 확인하세요.

1. 관리자 권한으로 명령 프롬프트를 열고 아래 명령을 실행하여 IIS 서버에 있는 모든 웹 사이트를 나열합니다.

%systemroot%\system32\inetsrv\APPCMD list sites

현재 서버에서 실행 중인 모든 사이트 목록과 각 사이트에 대한 기본 정보(ID, 상태 등)를 확인할 수 있습니다.

너무 일반적하다고요? 문제 없어요! 다음 단계에서 특정 웹 사이트에 대한 정보를 자세히 확인하려면 AppCmd.exe를 사용할 수도 있습니다.

Listing all the websites on your IIS server.

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

%systemroot%\system32\inetsrv\APPCMD list site "Default Web Site"
Listing all information about a specific website

3. 이제 특정 웹 사이트를 중지하고 모든 중지된 웹 사이트(/state:Stopped)를 나열하는 다음 명령을 실행하세요.

중지된 상태를 다른 사이트 상태로 대체할 수도 있습니다. 예를 들어 시작 중, 실행 중 또는 알 수 없는 상태 등이 있습니다.


%systemroot%\system32\inetsrv\APPCMD stop sites "Default Web Site"
%systemroot%\system32\inetsrv\APPCMD list sites /state:Stopped
Finding all websites that are currently stopped

4. 이제 여러 기준을 공백으로 구분하여 결과를 필터링하는 아래 명령을 실행하세요.

아래 명령은 중지된 상태(/state:Stopped)이고 서버 수준 자동 시작이 활성화된(/serverAutoStart:true) 모든 사이트 목록을 표시합니다.

%systemroot%\system32\inetsrv\APPCMD list sites /serverAutoStart:true /state:Stopped

5. 마지막으로 세 번째 단계에서 중지한 웹 사이트(“Default Web Site”)를 시작하는 명령을 실행하세요.

Starting a stopped website

결론

Windows IIS를 통해 웹 사이트를 관리하는 방법을 살펴보았습니다. 또한이 튜토리얼에서는 Windows Server에 IIS를 설치하고 구성하여 기본 PHP 웹 사이트를 배포하고 테스트하는 방법을 배웠습니다. Windows IIS는 GUI 및 명령줄 환경을 통해 웹 사이트를 관리할 수 있는 다재다능한 도구입니다.

이 새롭게 알게 된 지식으로 당신은 IIS에서 웹사이트와 응용 프로그램을 구축할 준비가 되었습니다! 왜 다음에는 IIS에서 워드프레스 사이트를 생성하는 방법을 배우지 않으시겠습니까? IIS에서 워드프레스 사이트를 생성하는 방법 을 알아보세요.

Source:
https://adamtheautomator.com/windows-iis/