杰瑞科技汇

PHP如何在IIS上安装?

目录

  1. 第一步:准备工作
    • 环境要求
    • 下载 PHP
    • 下载 VC Redistributable (运行库)
  2. 第二步:安装和配置 PHP
    • 解压 PHP
    • 配置 php.ini
    • 将 PHP 添加到系统环境变量
  3. 第三步:配置 IIS 以支持 PHP (FastCGI)
    • 安装 IIS 和 FastCGI 模块
    • 注册 PHP 到 IIS
    • 配置处理程序映射
  4. 第四步:测试 PHP 是否安装成功
    • 创建测试页面
    • 检查配置信息
  5. 第五步:常见问题与解决方案
    • HTTP 500 错误
    • 0 - Not Found
    • PHP 文件直接下载而不是执行
    • 无法加载 php_curl.dll 等扩展

第一步:准备工作

环境要求

  • 操作系统: Windows Server 2025 / 2025 / 2025 或 Windows 10 / 11 (专业版/企业版)。
  • Web 服务器: IIS (Internet Information Services)。
  • PHP 版本: 我们将使用 PHP 8.2 (这是目前最新的稳定 LTS 版本),你可以根据需要选择其他版本。
  • 架构: 确保你下载的 PHP 和 VC Redistributable 的架构(32位或64位)与你的 IIS 和操作系统一致。强烈推荐使用 64位 (x64)

下载 PHP

访问 PHP 官方下载页面:https://windows.php.net/download/

  • 选择 PHP 8.2 或你想要的版本。
  • 下载 x64 Non Thread Safe (NTS) 版本,对于 IIS/FastCGI,NTS 版本是标准选择。
  • 下载文件名为 php-8.2.x-nts-Win32-vs16-x64.zip,这是一个 ZIP 压缩包,无需安装,直接解压即可。

下载 VC Redistributable

PHP 是用 C++ 编写的,需要 Microsoft Visual C++ Redistributable 才能运行,你下载的 PHP 版本旁边会注明需要哪个 VC 版本("VS16" 对应 Visual Studio 2025)。


第二步:安装和配置 PHP

解压 PHP

  • 在你的系统上创建一个目录来存放 PHP,C:\php
  • 将下载的 php-8.2.x-nts-Win32-vs16-x64.zip 解压到 C:\php 目录中。
  • 进入 C:\php 目录,将 php.ini-development 文件复制一份,并重命名为 php.iniphp.ini-production 是生产环境的配置,我们通常修改 php.ini-development 来进行调试。

配置 php.ini

php.ini 是 PHP 的核心配置文件,用记事本或 VS Code 等文本编辑器打开它。

  • 启用扩展: 找到 ;extension_dir = "ext" 这一行,去掉前面的分号 ,并确保路径正确,由于我们解压在 C:\phpext 目录就在里面,这行应该是:
    extension_dir = "ext"
  • 启用常用扩展: 找到以下扩展,去掉前面的分号 来启用它们,这些是开发中非常常用的模块。
    ;extension=curl
    ;extension=fileinfo
    ;extension=gd
    ;extension=mbstring
    ;extension=mysqli
    ;extension=openssl
    ;extension=pdo_mysql

    启用后如下:

    extension=curl
    extension=fileinfo
    extension=gd
    extension=mbstring
    extension=mysqli
    extension=openssl
    extension=pdo_mysql
  • 配置时区: 找到 ;date.timezone =,去掉分号并设置一个时区,
    date.timezone = Asia/Shanghai

将 PHP 添加到系统环境变量

这一步是为了方便在命令行中使用 php 命令。

  • 右键点击“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
  • 在“系统变量”区域,找到名为 Path 的变量,双击它。
  • 点击“新建”,然后输入 PHP 的安装路径:C:\php
  • 点击“确定”保存所有设置。
  • 打开一个新的命令提示符(CMD)窗口,输入 php -v,如果能看到 PHP 版本信息,说明配置成功。

第三步:配置 IIS 以支持 PHP (FastCGI)

IIS 本身不直接运行 PHP,我们需要通过 FastCGI 协议来让 IIS 将 PHP 请求交给 PHP-CGI 进程处理。

安装 IIS 和 FastCGI 模块

如果你还没有安装 IIS,请先安装:

  • 打开 “服务器管理器” -> “添加角色和功能”。
  • 一直点击“下一步”,直到 “角色服务” 页面。
  • 在 “Web 服务器 (IIS)” 下,展开它。
  • 确保 “应用程序开发” 中的以下选项已勾选:
    • ASP.NET (可选)
    • CGI
  • 点击“安装”。

如果你已经安装了 IIS,但不确定是否有 CGI 模块,可以通过以下方式检查:

  • 打开 “服务器管理器” -> “工具” -> “Internet Information Services (IIS) 管理器”。
  • 在左侧管理器树中,点击你的服务器名称。
  • 在中间的 “IIS” 区域,你应该能看到 “处理程序映射” 等图标,如果看不到,说明模块未安装,需要通过 “服务器管理器” 的 “角色” -> “Web 服务器 (IIS)” -> “管理” -> “添加角色服务” 来安装 “CGI” 功能。

注册 PHP 到 IIS

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

  • 打开 IIS 管理器
  • 在左侧,点击你的服务器名称。
  • 在中间的 IIS 区域,双击 “处理程序映射”
  • 在右侧的 “操作” 面板中,点击 “添加脚本映射...”
  • 在弹出的窗口中填写以下信息:
    • 请求路径: *.php (告诉 IIS 所有以 .php 结尾的文件都由这个处理器处理)
    • 可执行文件: C:\php\php-cgi.exe (指向 PHP 的 CGI 程序,请确保你的路径正确)
    • 名称: PHP_via_FastCGI (可以任意命名,方便识别)
    • 点击“请求”。
  • 在弹出的 “添加模块请求” 窗口中,从 “模块” 下拉列表中选择 FastCgiModule
  • 点击“确定”。

你的处理程序映射列表中应该多了一个针对 PHP 的映射。

配置 FastCGI 设置

为了让 PHP-CGI 进程更稳定高效,我们需要配置它的一些参数。

  • 在 IIS 管理器左侧,点击你的服务器名称。
  • 在中间的 IIS 区域,双击 “处理程序”
  • 在右侧的 “操作” 面板中,点击 “注册程序...”
  • 在弹出的窗口中,填写以下信息:
    • 可执行文件: C:\php\php-cgi.exe (再次确认路径)
    • 名称: PHP (可以任意命名)
    • 点击“确定”。
  • 在 “处理程序” 列表中,你应该能看到刚刚注册的 PHP,选中它。
  • 在右侧的 “操作” 面板中,点击 “设置...”
  • 在 “FastCGI 设置” 窗口中,你可以进行一些高级配置,
    • 实例最大数: 默认是 4,可以适当调高,如 10 或 20,以应对高并发。
    • 环境变量: 这里可以设置 PHP 的环境变量,PHP_FCGI_CHILDREN 等,对于入门,可以保持默认。
  • 点击“应用”和“确定”保存。

第四步:测试 PHP 是否安装成功

创建测试页面

  • 打开 IIS 管理器,在左侧点击你的 网站 ("Default Web Site")。
  • 在中间的 “操作” 面板中,点击 “添加虚拟目录...”
    • 别名: phpinfo
    • 物理路径: 选择一个存放测试文件的文件夹,C:\inetpub\wwwroot\phpinfo
    • 点击“确定”。
  • C:\inetpub\wwwroot\phpinfo 文件夹中,创建一个名为 info.php 的文件。
  • 用记事本打开 info.php,输入以下内容:
    <?php
    phpinfo();
    ?>
  • 保存文件。

检查配置信息

  • 打开浏览器,访问你刚刚创建的页面地址:http://你的服务器IP或域名/phpinfo/info.php
    • http://localhost/phpinfo/info.php
  • 如果一切正常,你应该能看到一个详细的 PHP 配置信息页面,这证明了 PHP 和 IIS 已经成功集成!

第五步:常见问题与解决方案

HTTP 500 错误 (内部服务器错误)

这是最常见的错误,原因通常是 php.ini 配置错误或 FastCGI 进程崩溃。

  • 解决方案:
    1. 检查 php.ini 文件中是否有语法错误(比如缺少分号、引号不匹配等)。
    2. 检查 C:\php 目录的权限,确保 IIS_IUSRS 或 IIS_USRS 用户组对该目录有“读取”和“执行”权限。
    3. 查看 IIS 的详细错误日志,在 IIS 管理器中,双击 “错误页”,点击 “编辑功能设置...”,将 “详细错误” 设置为 “true”,然后刷新页面,你会看到更具体的错误信息。
    4. 检查 PHP 的日志,在 php.ini 中找到 ;error_log = php_errors.log,去掉分号,PHP 的错误信息会记录在 C:\php\php_errors.log 文件中,查看这个文件可以找到问题根源。

0 - Not Found

IIS 找不到你请求的文件。

  • 解决方案:
    1. 检查 URL 是否正确,文件是否真的存在于指定的目录中。
    2. 检查网站的 “默认文档” 设置,在 IIS 管理器中,选中你的网站,双击 “默认文档”,确保 index.phpdefault.php 在列表中。

PHP 文件直接下载而不是执行

浏览器直接将 .php 文件作为文件下载,而不是解析执行。

  • 解决方案: 这说明 处理程序映射 没有配置成功。
    1. 回到 IIS 管理器的 “处理程序映射”。
    2. 检查 *.php 的映射是否存在,“模块” 列中显示的是 FastCgiModule
    3. 如果映射不存在,请按照 第三步 重新添加。
    4. 如果映射存在,尝试移除后重新添加。

无法加载 php_curl.dll 或其他扩展

访问 phpinfo() 页面时,在 Loaded Configuration File 下看到 extension_dir 正确,但某些扩展显示为 disabled

  • 解决方案:
    1. 路径问题: 确保 extension_dir = "ext" 这一行没有分号,并且路径指向你 php 目录下的 ext 文件夹。
    2. 文件不存在: 进入 C:\php\ext 目录,检查 php_curl.dll 文件是否存在,如果不存在,说明你的 PHP 压缩包可能不完整,请重新下载。
    3. 依赖库缺失: 某些扩展(如 curl)需要额外的 DLL 文件,确保你已经安装了对应版本的 VC Redistributable
    4. 权限问题: 确保 IIS_IUSRS 用户组对 C:\php\ext 目录有读取权限。

至此,PHP 在 IIS 上的安装和配置就全部完成了,你已经成功搭建了一个功能强大的 Windows Web 开发环境。

分享:
扫描分享到社交APP
上一篇
下一篇