开始使用Windows IIS(Internet Information Services)

网站是当今互联网内容中最常见的类型。但为了确保您的网站能够被尽可能广泛的受众所看到,您需要将您的网站托管在网络服务器上。如何做到呢?考虑使用Windows Internet Information Services(Windows IIS),这是一种流行的网络托管选择。

在本教程中,您将学习如何通过图形用户界面或命令行环境开始使用Windows IIS进行Web应用程序管理的基础知识!

继续阅读,并提升您在Windows IIS中管理Web应用程序的能力!

先决条件

本教程将进行实践演示。如果您想跟着做,请确保您已经:

  • 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需要Visual C++来正确渲染PHP页面。

在Windows服务器上安装Windows IIS

IIS Web服务器为在Windows操作系统上托管网站和服务提供了丰富的功能和可扩展性。但在使用IIS之前,您必须先在您的Windows机器上安装此工具。

要在Windows服务器上安装Windows IIS:

1. 按下Ctrl+R打开运行框,在其中键入ServerManager,然后按Enter。

这个操作会打开Server Manager仪表板。IT管理员使用此GUI仪表板来执行与服务器管理相关的各种日常任务。

Launching the Server Manager

在服务器管理器上,单击“添加角色和功能”链接以打开向导,您可以在本地服务器上添加角色服务和功能。

Initiating adding roles and features

接下来,阅读“开始之前”页面上的信息,然后单击“下一步”。

您还可以选中“默认情况下跳过此页面”选项,这样下次添加角色和功能时将不会再看到此页面。

Acknowledging the welcome page

现在,在“安装类型”页面上,选择第一个选项(基于角色或功能的安装),然后单击“下一步”。

在大多数情况下,建议选择此选项,它会按标准方式引导您添加特定角色、角色服务和功能。

如果选择第二个选项(远程桌面服务安装),您需要手动选择要安装的必需角色、服务和功能。

Selecting installation type

从服务器池中选择您的服务器,然后单击“下一步”。

您还可以为分布式安装选择多个服务器,但这超出了本教程的范围。

Selecting a destination server

接下来,在“服务器角色”页面上选中“Web 服务器(IIS)”复选框,以获得可伸缩的 Web 应用程序基础架构,然后单击“下一步”。

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

保持默认选中状态,然后单击“下一步”。这将告诉 Windows 安装所有需要的 IIS 服务器角色的子功能,包括 ASP.NET、静态内容和默认文档。

Confirming default selected features

查看有关 Web 服务器角色(IIS)的更多信息,然后单击“下一步”。

Reviewing more information about the Web Server Role (IIS)

在“角色服务”页面上,保持默认选择不变,但展开“应用程序开发”节点,选中“CGI”复选框,然后单击“下一步”。

这个选项安装了对通用网关接口(CGI)的支持,这是一种将外部应用程序与网络服务器进行接口连接的标准方法。

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。

下载非线程安全(NTS)ZIP 包,因为 IIS 使用单个线程来处理每个请求。线程安全(TS)包用于 IIS FastCGI,它使 PHP 能够在多线程环境中运行。

Downloading the PHP (NST) package

2. 将下载的 PHP 压缩包解压缩到服务器上的 PHP 目录(C:\PHP\)。

解压存档后,您需要安装和配置IIS,以便管理和部署Web应用程序。

Unzipping the downloaded PHP archive to the PHP directory

3. 打开服务器管理器,选择“仪表板” → “工具” → “Internet Information Services(IIS)管理器”。此操作将打开IIS管理器控制台,在其中您可以配置IIS设置,创建和管理网站,并部署Web应用程序。

Opening the IIS Manager console.

4. 现在,选择您的本地主机(连接面板),并双击处理程序映射以访问可用的处理程序映射列表。

Accessing handler mappings

5. 在处理程序映射页面上,单击“添加模块映射”(右面板),这将打开“添加模块映射”对话框。

Initiating adding a module mapping

6. 接下来,使用以下方式配置新映射:

  • 请求路径 – 输入*.php以告诉IIS将所有以.php结尾的请求转发到PHP处理器模块。通配符符号(*)让您节省时间,因为您不必为每个PHP文件添加处理程序映射。
  • 模块 – 选择FastCgiModule以指定FastCGI模块应处理请求。
  • 可执行文件 – 输入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. 现在在访问标签上,选择脚本选项,然后单击确定。此选项告诉 IIS PHP 页面是要执行的脚本,而不是要直接提供的静态文件。

Selecting the required access by the handler

10. 返回到添加模块映射,单击确定以添加新的模块映射。

Adding the new module mapping

11. 最后,以管理员身份打开 PowerShell,并运行 IISRESET 命令以重新启动 Windows IIS。此操作对于新的处理程序映射生效是必要的。

IISRESET 
Restarting the Windows IIS server

部署您的第一个网站

现在您已经安装了 PHP 并配置了 IIS,最令人兴奋的部分来了——部署您的网站。但首先,您需要一个要部署的网站。在本示例中,您将创建并部署一个基本的 PHP 页面到您的 IIS 服务器。

1. 在您喜欢的文本编辑器中,在网站的根目录中创建一个新的 index.php 文件。在本示例中,网站的根目录是 C:\inetpub\wwwroot\

.php扩展告诉IIS该index.php文件是要由PHP处理器模块处理的PHP页面。

2. 接下来,在新的index.php文件中添加以下代码,保存更改并关闭文件。

下面的代码告诉IIS在浏览器中显示一个简单的“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. 最后,在您的Web浏览器中打开一个新标签,并导航到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. 运行以下命令获取有关默认网站的所有信息。

%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. 最后,运行以下命令启动您在第三步中停止的网站(“默认网站”)。

Starting a stopped website

结论

您已经了解了 Windows IIS 如何帮助您管理您的网站。在本教程中,您学会了在 Windows 服务器上安装和配置 IIS 以部署和测试基本的 PHP 网站。Windows IIS 是一款多功能工具,可以通过图形界面和命令行环境来管理您的网站。

以这些新获得的知识,您已经准备好在 IIS 上开始构建您的网站和应用程序了!为什么不学习如何在 IIS 上创建 WordPress 网站呢? 次要文本

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