Windows手动部署PHP 8.2.32+Nginx需严选vs17-x64非线程安全包,解压至C:\php82并安装VC2022运行库;php.ini必设extension_dir、date.timezone、session.save_path、upload_tmp_dir及启用openssl/curl/mbstring/pdo_mysql/gd;Nginx配置fastcgi_pass必须与php-cgi.exe -b 127.0.0.1:9000端口严格一致,root指向C:/www,验证时phpinfo()显示版本与配置路径正确即成功。

Windows 手动部署 PHP 8.2.32 + Nginx 本地开发环境,核心是「隔离安装、路径干净、配置对齐」——不依赖集成包,避免版本冲突和调试失灵。关键不在“装上”,而在“能调、能切、不干扰系统命令”。
一、下载与解压:只认官方源,严选版本
从 https://windows.php.net/download/ 下载对应包:
→ 必须选 php-8.2.32-Win32-vs17-x64.zip(非 TS 版,即 Non-Thread Safe;vs17 表示需 VC2022 运行库;x64 匹配主流系统)
→ 解压到纯英文无空格路径,如 C:\php82(勿用 C:\Program Files 或含中文路径)
→ 同步安装 Microsoft Visual C++ 2022 Redistributable (x64),否则 php.exe 启动报错“VCRUNTIME140.dll 缺失”
二、PHP 基础配置:三处必改,五项必启
复制 php.ini-development → 重命名为 php.ini,用文本编辑器打开后重点修改:
-
extension_dir:改为绝对路径,带双引号,正斜杠或双反斜杠均可
extension_dir = "C:/php82/ext" -
date.timezone:必须设置,否则 strtotime()、Carbon、Laravel 启动失败
date.timezone = Asia/Shanghai -
session.save_path 和 upload_tmp_dir:手动创建对应目录并赋值
session.save_path = "C:/php82/session_temp"upload_tmp_dir = "C:/php82/upload_temp" - 取消注释以下扩展(Windows 下为 .dll,无需改后缀):
extension=opensslextension=curlextension=mbstringextension=pdo_mysqlextension=gd
保存后,打开 CMD 执行:php -v → 确认输出含 8.2.32php -m | findstr -i "openssl curl mbstring" → 确保扩展已加载
三、Nginx 配置与联动:fastcgi_pass 必须严格匹配
从 https://nginx.org/en/download.html 下载最新 Windows 版(如 nginx-1.25.5),解压至 C:\nginx。
编辑 C:\nginx\conf\nginx.conf,替换默认 server 块为:
立即学习“PHP免费学习笔记(深入)”;
server {
listen 80;
server_name localhost;
root C:/www;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
注意:
→ fastcgi_pass 127.0.0.1:9000 必须与后续 php-cgi 启动端口一致
→ root 路径用正斜杠,且确保 C:\www 目录存在
→ 不要删掉 include fastcgi_params;,否则 $_SERVER 变量缺失
四、启动与验证:两步走稳,错误直查
第1步:启动 PHP FastCGI
CMD 进入 C:\php82,执行:php-cgi.exe -b 127.0.0.1:9000 -c php.ini
(加 -c php.ini 显式指定配置,避免读错 ini 文件)
第2步:启动 Nginx
CMD 进入 C:\nginx,执行:nginx.exe
→ 若无提示即成功;若报错,运行 nginx.exe -t 检查配置语法
验证页:
在 C:\www\index.php 写入:<?php phpinfo(); ?>
浏览器访问 http://localhost,页面顶部显示 PHP Version 8.2.32,且“Loaded Configuration File”指向你修改的 C:\php82\php.ini,即成功。
若遇 502 Bad Gateway,优先检查:
→ php-cgi 是否正在运行(任务管理器看 php-cgi.exe 进程)
→ 端口是否被占用(netstat -ano | findstr :9000)
→ Nginx 错误日志:C:\nginx\logs\error.log 中是否有 connect refused 或 upstream timeout



















