下面给你一套IIS 更换 PHP 版本(升级 / 降级)的完整、稳妥流程,适用于 IIS 7–10、PHP 7.4/8.0/8.1/8.2/8.3(Windows 10/11 或 Server)。


一、先明确:IIS 必须用 NTS + php-cgi.exe

  • IIS 只支持 FastCGI,必须选:

    • NTS(非线程安全)x64

    • 文件名:php\-cgi\.exe

  • 不要用 TS、不要用 php\.exe,否则直接 500 错误


二、下载新 PHP 并解压(和旧版并存)

  1. 官网下载(选 NTS x64):
    https://windows.php.net/download/

  2. 解压到新目录(不要覆盖旧版):

    • 旧版:C:\\php74

    • 新版:C:\\php82

  3. 复制一份配置文件:

    复制 php.ini-development → 另存为 php.ini
    

三、配置新 php.ini(关键,避免 500)

打开 C:\\php82\\php\.ini,至少保证这些:

; 时区
date.timezone = Asia/Shanghai

; 扩展目录(必须正确)
extension_dir = "C:\php82\ext"

; 必须开启的扩展(MySQL)
extension=mysqli
extension=pdo_mysql

; FastCGI 硬性要求
cgi.force_redirect = 0
fastcgi.impersonate = 1
cgi.fix_pathinfo=0

; 错误显示(排错用)
display_errors = On
display_startup_errors = On

四、给新 PHP 目录加权限(IIS 必加)

  1. 右键 C:\\php82 → 属性 → 安全 → 编辑 → 添加

  2. 输入:IUSR → 检查名称 → 确定

  3. IUSR 勾选:读取、执行、列出文件夹内容

  4. 同样权限也要给:C:\\inetpub\\wwwroot


五、IIS 更换版本(两种方法:单站 / 全局)

方法 A:只改当前网站(推荐,不影响其他站)

  1. Win+R → inetmgr 打开 IIS

  2. 左侧点你的网站(不是服务器根)

  3. 双击 处理程序映射

  4. 找到 \*\.php → 右键 编辑

    • 可执行文件:改成新版路径

      C:\php82\php-cgi.exe
      
    • 名称:可改成 PHP82\_FastCGI

  5. 确定 → 弹出 “是否更新 FastCGI 应用程序” → 选 “是”

方法 B:全局更换(所有网站统一版本)

  1. 左侧点服务器名(根节点)

  2. 双击 FastCGI 设置

  3. 找到旧版 php\-cgi\.exe → 右键 编辑 → 把路径改成新版:

    C:\php82\php-cgi.exe
    
  4. 再到 处理程序映射\*\.php 指向新版


六、更新系统环境变量 Path(可选但建议)

  1. 此电脑 → 右键属性 → 高级系统设置 → 环境变量

  2. 系统变量 → 编辑 Path

  3. 把旧版 C:\\php74 删掉,新增:

    C:\php82
    
  4. 确定,重启电脑生效


七、重启 IIS 并验证

  1. 管理员 CMD:

    iisreset
    
  2. wwwrootinfo\.php

    <?php phpinfo();
    
  3. 访问 http://localhost/info\.php

    • 看到 PHP Version 8.2.x → 成功

    • 检查 Loaded Configuration FileC:\\php82\\php\.ini

    • 检查 mysqlipdo\_mysql 已启用


八、常见 500 坑(换版最容易踩)

  1. VC++ 运行库缺失(PHP8 + 必装)

    • PHP 8.x 需要 VC17(VS2022)运行库

    • 下载:微软官网搜 vc redist x64

  2. php.ini 路径不对

    • FastCGI 设置里要确认 PHPRC 指向新版目录
  3. 旧版 php-cgi.exe 还在运行

    • 重启 IIS:iisreset
  4. 目录权限没给 IUSR

    • 90% 的 500 都是权限问题

九、多版本并存(以后切换更方便)

如果你以后想随时切换:

  1. 把所有版本都解压到独立目录:php74php81php82

  2. 在 IIS 给每个网站单独设置处理程序映射

  3. 想切哪个版本,就把该站 \*\.php 指向对应 php\-cgi\.exe


如果你愿意,我可以直接帮你远程式一步步排查:你告诉我
1)你要换到哪个 PHP 版本(7.4/8.1/8.2),
2)现在访问 info\.php 显示的具体错误信息(截图或文字),
我直接给你对应版本的 php.ini 完整复制版IIS 点哪里的精确指引

(注:文档部分内容可能由 AI 生成)

更多推荐