最稳妥的升级方式是卸载旧版、重装新版;需据安装方式选择对应策略,推荐使用ZIP包手动部署,注意扩展兼容性、Web服务器配置匹配及语法更新。

Windows 上 PHP 版本过低,最稳妥的升级方式是**卸载旧版、重装新版**,而不是就地升级。PHP 官方不提供 Windows 下的增量升级包,强行替换 php.exe 或 DLL 文件极易导致扩展缺失、路径错乱、服务崩溃。
确认当前 PHP 是如何安装的
这直接决定后续操作路径——不同安装方式不能混用:
- 如果是通过 XAMPP / WAMP / Laragon 等集成环境安装的:不要单独升级其中的 PHP,应升级整个套件,或改用其内置的 PHP 切换功能(如 Laragon 支持多版本一键切换)
- 如果是手动解压 ZIP 包并配置环境变量的(常见于 CLI 使用场景):只需下载新 ZIP 包,替换目录,更新
PATH中的路径即可 - 如果是通过
Microsoft Web Platform Installer安装的:该工具已停止维护,建议弃用,改用手动 ZIP 方式 - 如果 PHP 作为 IIS 模块运行(FastCGI):需同步更新
php-cgi.exe路径和php.ini配置,并在 IIS 管理器中重新注册处理器映射
下载并部署新版 PHP(推荐 ZIP 方式)
避开安装程序(.msi),ZIP 包更透明、易管理、无注册表污染:
- 去 https://www.php.cn/link/a9a2c061a1c2743d489c6863eae6725a 下载线程安全(
Thread Safe)版本,匹配你的系统架构(x64或x86) - 推荐选
VC17编译版(对应 VS2022 运行时),Windows 10/11 默认兼容;避免VC15(旧)或VC19(尚未广泛适配) - 解压到固定路径,例如
C:\php-8.3.6,不要放在Program Files下(空格和权限可能引发问题) - 复制
php.ini-development为php.ini,启用常用扩展:取消;extension=openssl、;extension=pdo_mysql等前的分号 - 用命令验证:
set PATH=C:\php-8.3.6;%PATH%,然后运行php -v和php --modules
替换旧版并修复关键依赖
升级后最常出问题的不是 PHP 本身,而是生态链断裂:
立即学习“PHP免费学习笔记(深入)”;
-
composer可能报错Your Composer version is too old:运行php composer-setup.php重新安装最新版composer.phar,或用php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"手动拉取 - Apache 的
LoadModule php_module路径需指向新php8apache2_4.dll,且该 DLL 必须与 Apache 版本(2.4.x)、VC 版本、线程模型严格匹配;不匹配会直接拒绝启动 - 旧项目用
mysql_connect()等已被移除的函数?PHP 8.0+ 已彻底删除 MySQL 扩展,必须改用mysqli或PDO,否则运行即 fatal error - 检查
date.timezone是否在php.ini中显式设置,否则strtotime()等函数在新版中会抛Warning
真正麻烦的从来不是下载和解压,而是扩展兼容性、Web 服务器模块绑定、以及项目里那些没写注释的古老语法调用。动手前务必备份 php.ini 和 Web 服务配置,升级后第一件事不是跑业务代码,而是用 php -l 扫一遍核心文件有没有语法错误。











