跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

PHP8.3如何部署在Windows_PHP8.3Windows部署方案【环境】

PHP 8.3 在 Windows 上 php -v 成功不代表 Web 服务可用,根本原因是 CLI 与 Web(Apache/Nginx/IIS)加载不同 php.ini、扩展 DLL 和运行时;必须选用 VC17+NTS 官方 ZIP 包,安装 VC2022 运行库,解压至无空格无中文路径(如 C:\php),复制 php.ini-development 为 php.ini 并启用 extension_dir、mysqli、zip 及 date.timezone,通过 phpinfo() 确认实际加载的配置路径,改后重启 Web 服务。 PHP 8.3 在 Windows 上能跑
php -v
,不等于 Web 服务能用——根本原因在于 CLI 和 Web(Apache/Nginx/IIS)加载的是不同
php.ini
、不同扩展 DLL、甚至不同运行时依赖。部署失败的绝大多数情况,不是“没装好”,而是“配错了位置”或“混用了版本类型”。 怎么选对 ZIP 包:VC17 + NTS 是唯一推荐组合 PHP 8.3 官网只提供 Non-Thread Safe(NTS)版本,
Thread Safe(TS)
已彻底下线。别再搜“TS 包”,那只会带你进旧教程陷阱。 去 https://www.php.cn/link/a9a2c061a1c2743d489c6863eae6725a ,找带
VC17
和
x64
标识的包,例如:
php-8.3.6-Win32-vs17-x64.zip
必须安装
Microsoft Visual C++ 2022 Redistributable (x64)
,否则启动
php.exe
直接报错
0xc000007b
跳过标有
Source code
或
Dev Pack
的下载项——它们不能运行 解压路径和 php .ini 配置是成败关键 Windows 11 对路径更敏感,
C:\Program Files\php
或
D:\my php\8.3
这类含空格/中文的路径,会导致
extension=openssl
加载失败、
php --ini
显示配置未加载。 解压到无空格、无中文、层级极浅的路径,例如:
C:\php
(不是
C:\php-8.3
,也不是
D:\dev\php\8.3
) 把
php.ini-development
复制为
php.ini
;不要用
php.ini-production
,它默认禁用所有扩展 修改
php.ini
中三处必调项:
extension_dir = "C:/php/ext" extension=mysqli extension=zip date.timezone = "Asia/Shanghai"
注意:
extension=
后面写模块名(如
mysqli
),不是文件名(如
php_mysqli.dll
) 为什么 phpinfo() 不显示 zip 或 mysqli 扩展 你改了
C:\php\php.ini
,但 Apache 可能还在读
C:\xampp\php\php.ini
或
C:\Windows\php.ini
。CLI 能看到扩展,网页里看不到,几乎 100% 是这个原因。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”; 先建一个
info.php
文件,内容为
,用浏览器访问它,看
Loaded Configuration File
显示的路径 只改那个路径下的
php.ini
,不是你认为“应该改”的那个 确认
C:\php\ext\php_zip.dll
和
php_mysqli.dll
真实存在;如果缺失,说明你下的是精简版 ZIP,换回官网完整包 改完后必须重启 Web 服务(Apache/Nginx/IIS),不是刷新网页 Web 服务与 CLI 共用同一套配置的最简方案 如果你不想每次验证都怀疑“到底读的是哪个 ini”,就强制统一路径: CLI 下临时指定配置:
php -c C:\php\php.ini -v
,确保命令行也走你改的那个文件 Apache:在
httpd.conf
中硬编码路径:
PHPIniDir "C:/php" LoadModule php_module "C:/php/php8apache2_4.dll"
Nginx + php-fpm:在
php-fpm.conf
或启动命令中加
-c C:\php\php.ini
切记:改完环境变量后,所有已打开的 CMD/PowerShell/VS Code 终端都必须关闭重开,否则
PATH
不生效 最常被跳过的其实是
date.timezone
和
openssl
——它们不报致命错误,但会让
date()
返回 UTC 时间、让 Composer 安装卡在证书校验,问题现象分散,排查成本远高于提前配好。

相关文章