IIS 配置 PHP 完整教程

本教程将引导您完成在 Windows 的 IIS (Internet Information Services) Web 服务器上安装和配置 PHP 运行环境的所有步骤。

iis php配置教程
(图片来源网络,侵删)

目录

  1. 准备工作
  2. 安装 IIS 和 URL 重写模块
  3. 下载并解压 PHP
  4. 配置 PHP (php.ini)
  5. 在 IIS 中注册 PHP 处理程序
  6. 测试 PHP 是否工作
  7. 配置更友好的 URL (伪静态)
  8. 常见问题与解决方案

准备工作

在开始之前,请确保您已经:

  1. 一台 Windows 服务器或 PC:操作系统可以是 Windows Server 2012 R2/2025/2025/2025,或 Windows 10/11。
  2. 管理员权限:您需要拥有管理员权限来安装组件和修改配置。
  3. PHP 官方下载包:访问 PHP 官方下载页面
    • 推荐选择:选择 Thread Safe (TS) 版本,这对于 IIS 和大多数 PHP 应用(如 WordPress)来说是标准且兼容性最好的选择。
    • 选择架构:根据您的系统选择 x86 (32位) 或 x64 (64位),现代系统推荐使用 x64。
    • 下载格式:下载 ZIP 压缩包,php-8.2.12-nts-Win32-vs16-x64.zipphp-8.2.12-nts-Win32-vs16-x64.zip,我们使用 ZIP 包是因为它更灵活,无需安装程序。

安装 IIS 和 URL 重写模块

如果您的系统上还没有安装 IIS,请按以下步骤操作:

  1. 打开服务器管理器:在 Windows 开始菜单中搜索“服务器管理器”并打开。
  2. 添加角色和功能
    • 在仪表板中,点击“添加角色和功能”。
    • 点击“下一步”,直到到达“角色”页面。
  3. 选择 Web 服务器角色
    • 在角色列表中,勾选 Web 服务器 (IIS)
    • 当弹出“添加功能 required for Web Server”时,点击“添加功能”,然后点击“下一步”。
  4. 安装 IIS
    • 在“角色服务”页面,保持默认选择即可(这些是基本的服务组件),直接点击“下一步”。
    • 确认摘要信息无误后,点击“安装”。
  5. 安装 URL 重写模块
    • 这个模块对于配置伪静态(如 WordPress 的固定链接)至关重要。
    • 访问 Microsoft URL Rewrite Module 官方下载页面
    • 下载适用于您系统的版本(通常是 x64 的 MSI 安装包)。
    • 运行下载的安装包,按照向导完成安装。

下载并解压 PHP

  1. 创建 PHP 目录:为了方便管理,建议在 C 盘根目录下创建一个名为 php 的文件夹。C:\php
  2. 解压 PHP
    • 将您从官网下载的 PHP ZIP 压缩包解压到 C:\php 目录中。
    • 解压后,您应该能看到 php-cgi.exe, php.ini-development 等文件。

配置 PHP (php.ini)

php.ini 是 PHP 的核心配置文件,您需要对其进行一些基本设置。

  1. 重命名配置文件

    iis php配置教程
    (图片来源网络,侵删)
    • 进入 C:\php 目录。
    • php.ini-development 文件重命名为 php.ini,对于生产环境,推荐使用 php.ini-production,但开发环境使用 php.ini-development 也可以,它包含了更多的调试信息。
  2. 编辑 php.ini 文件

    • 使用记事本或更专业的编辑器(如 VS Code、Notepad++)打开 php.ini

    • 查找并修改以下几项关键配置(可以使用 Ctrl+F 搜索):

    • 启用 PHP 扩展:找到 ;extension_dir = "ext" 这一行,去掉前面的分号 ,并确保路径正确。

      iis php配置教程
      (图片来源网络,侵删)
      extension_dir = "ext"
    • 启用常用扩展:根据您的需求,去掉相应扩展名前的分号 来启用它们,要连接 MySQL 数据库,需要启用 mysqlipdo_mysql

      ;extension=curl
      ;extension=fileinfo
      ;extension=gd
      ;extension=mbstring
      ;extension=mysqli
      ;extension=openssl
      ;extension=pdo_mysql
      ;extension=sockets

      修改后如下:

      extension=curl
      extension=fileinfo
      extension=gd
      extension=mbstring
      extension=mysqli
      extension=openssl
      extension=pdo_mysql
      extension=sockets
    • 配置时区:找到 ;date.timezone = 这一行,去掉分号并设置为您所在的时区。

      date.timezone = Asia/Shanghai
    • 上传文件大小限制:修改 upload_max_filesizepost_max_size 的值。

      upload_max_filesize = 32M
      post_max_size = 32M
  3. 保存并关闭 php.ini 文件


在 IIS 中注册 PHP 处理程序

这是最关键的一步,告诉 IIS 如何处理 .php 文件。

  1. 打开 IIS 管理器

    在 Windows 开始菜单中搜索“IIS”并打开“Internet Information Services (IIS) 管理器”。

  2. 打开处理程序映射

    • 在左侧的“连接”面板中,点击您的服务器名称。
    • 在中间的“管理”区域,双击 “处理程序映射”
  3. 添加模块映射

    • 在右侧的“操作”面板中,点击 “添加模块映射...”
  4. 填写映射信息

    • 请求路径:输入 *.php
    • 模块:从下拉列表中选择 FastCgiModule
    • 可执行文件:点击右侧的“浏览...”,然后导航到 C:\php\php-cgi.exe 并选择它。
    • 名称:可以输入一个描述性名称,PHP_via_FastCGI
    • 确保“请求限制”为空
  5. 确定

    • 点击“确定”。
    • 系统可能会弹出一个警告,提示“如果尚未为 FastCGI 处理程序安装可执行文件,则将无法处理请求”,这很正常,因为我们下一步就要配置它,点击“是”继续。
  6. 配置 FastCGI 设置

    • 在 IIS 管理器左侧,点击您的服务器名称。
    • 在中间的“管理”区域,双击 “FastCGI 设置”
    • 在右侧的“操作”面板中,点击 “添加应用程序...”
    • 填写 FastCGI 应用程序信息
      • 完整路径:再次浏览并选择 C:\php\php-cgi.exe
      • 实例模板:留空。
      • 环境变量:点击“...”按钮,添加一个环境变量。
        • 变量名PHP_INI_SCAN_DIR
        • 变量值C:\php\
        • 这个变量告诉 PHP 去哪个目录下查找 php.ini 文件,非常重要!
    • 点击“确定”保存。

至此,PHP 在 IIS 中的配置已经完成。


测试 PHP 是否工作

现在我们来验证 PHP 是否能正常解析和执行。

  1. 创建测试网站

    • 在 IIS 管理器左侧,右键点击“站点”,选择“添加网站...”。
    • 网站名称:输入一个名称,如 Test PHP
    • 物理路径:选择一个用来存放网站文件的文件夹,C:\inetpub\wwwroot\testphp
    • 端口:保持默认的 80
    • 点击“确定”。
  2. 创建 PHP 信息页

    • 进入 C:\inetpub\wwwroot\testphp 文件夹。
    • 创建一个新的文本文件,将内容修改为:
      <?php
      phpinfo();
      ?>
    • 将此文件另存为 info.php
  3. 访问测试页面

    • 打开浏览器,在地址栏输入 http://localhost/info.phphttp://您的服务器IP/info.php
    • 如果您看到了一个包含大量 PHP 配置信息的页面(包括 PHP 版本、已加载的模块等),那么恭喜您,PHP 已经成功配置并运行了!

配置更友好的 URL (伪静态)

许多 PHP 应用(如 WordPress、Magento)需要友好的 URL 结构,这需要 URL 重写模块来实现。

  1. 在网站中打开 URL 重写

    • 在 IIS 管理器中,选择您刚才创建的 Test PHP 网站。
    • 在中间的“管理”区域,双击 “URL 重写”
  2. 添加入站规则

    • 在右侧的“操作”面板中,点击 “添加规则...”
    • 选择 “空白规则”,然后点击“确定”。
  3. 配置规则

    • 名称:输入一个名称,如 WordPress Permalinks
    • 匹配 URL
      • 模式:输入 ,这是一个通配符,可以匹配任何请求。
      • 忽略大小写:勾选此项。
    • 条件
      • 点击“添加...”。
      • 输入的条件{REQUEST_FILENAME}
      • 运算符Is Not File
      • 检查如果输入字符串Pattern
    • 操作
      • 操作类型Rewrite
      • URL:输入 index.php/{R:1},这会将所有不对应于实际文件的请求重定向到 index.php 并传递原始路径作为参数。
    • 点击“应用”保存。

您的网站就支持伪静态了,具体规则需要根据您使用的 PHP 应用程序(如 WordPress)的官方文档进行调整。


常见问题与解决方案

  1. HTTP 错误 500.19 - Internal Server Error

    • 原因:通常是权限问题,IIS 的应用程序池用户(通常是 IIS_IUSRSSYSTEM)没有读取 php.ini 或 PHP 扩展(在 ext 文件夹中)的权限。
    • 解决
      1. 右键点击 C:\php 文件夹,选择“属性” -> “安全”。
      2. 点击“编辑”,然后添加 IIS_IUSRS 用户。
      3. 为该用户赋予“读取和执行”、“列出文件夹内容”、“读取”权限。
      4. C:\php\ext 文件夹重复此操作。
  2. HTTP 错误 500.0 - Internal Server Error / FastCGI 进程意外退出

    • 原因:通常是 php.ini 文件配置有误,或者某个 PHP 扩展与您的 PHP 版本不兼容。
    • 解决
      1. 检查 php.ini 文件中是否有语法错误(缺少引号、分号等)。
      2. 临时将 php.ini 中启用的扩展全部注释掉(在行首加 ),然后测试,如果恢复正常,说明是某个扩展的问题,逐个启用排查。
      3. 确保下载的 PHP 扩展(.dll 文件)与您的 PHP 版本和架构(VC版本、x86/x64)完全匹配。
  3. 浏览器直接下载 PHP 文件,而不是显示内容

    • 原因:IIS 没有正确注册 .php 文件的映射。
    • 解决:返回 步骤五,仔细检查“处理程序映射”中是否存在 *.php 的映射,并且可执行文件路径是否正确指向 php-cgi.exe
  4. phpinfo() 显示的 Loaded Configuration File 路径不正确

    • 原因:PHP 没有找到您修改的 php.ini 文件。
    • 解决:确保您在 步骤六 的“FastCGI 设置”中正确添加了环境变量 PHP_INI_SCAN_DIR,其值为 C:\php\,这是最可靠的指定 php.ini 位置的方法。

希望这份详细的教程能帮助您成功在 IIS 上运行 PHP!如果您在配置过程中遇到任何问题,可以参考上述的常见问题解决方案,或在评论区提问。