Windows 7 搭建 PHP 环境必须搭配 Web 服务器(Apache/IIS/Nginx)并严格匹配运行模式:Apache + mod_php 需 VC15、TS、同架构的 PHP;IIS + FastCGI 需启用 CGI、配置 php-cgi.exe 和 fastcgi.impersonate=1;禁用不兼容的 AppServ 9.x、PHPStudy 2020+ 和原生 Nginx 服务注册。

Windows 7 搭建 PHP 环境不能只装 PHP,必须明确用哪个 Web 服务器(Apache / IIS / Nginx),且 PHP 必须以对应模式运行(mod_php、FastCGI 或 php-cgi.exe)。直接解压 PHP 并改 php.ini 是无效的,90% 的失败源于 Web 服务器未正确加载 PHP 或权限/路径配置错。
Apache + mod_php 是 Win7 下最稳的组合
Apache 自带服务注册能力,PHP 可编译进进程,无需额外进程管理。但必须严格匹配架构和 VC 运行库:
- 下载 Apache 2.4.x(VC15 编译) + PHP 7.4.x(VC15,Thread Safe 版本),两者必须同为 x86 或同为 x64;Win7 默认推荐 x86
- 进入 Apache
bin目录,管理员身份运行:httpd.exe -k install -n "Apache2.4" - 编辑
httpd.conf,确保三处关键配置存在且路径绝对:LoadModule php7_module "C:/php/php7apache2_4.dll"AddHandler application/x-httpd-php .phpPHPIniDir "C:/php" - PHP 解压后,把
php.ini-development改名成php.ini,取消注释并修正:extension_dir = "C:/php/ext"date.timezone = "Asia/Shanghai"extension=php_mbstring.dll和extension=php_gd2.dll(去掉前面的分号) - 启动服务前,先在 CMD 执行
httpd -t验证配置语法;若报错Cannot load module,说明 DLL 路径错或架构不匹配
IIS + FastCGI 更适合纯净版 Win7
Win7 自带 IIS 7.5,无需额外安装 Web 服务器,但必须启用 CGI 并正确配 php-cgi.exe —— 用 php.exe 会直接崩溃:
- 控制面板 → “启用或关闭 Windows 功能” → 勾选:
Internet Information Services → Web管理工具 → IIS管理控制台Internet Information Services → 万维网服务 → 应用程序开发功能 → CGI.NET Framework 3.5(包括.NET 2.0 和 3.0) - PHP 必须解压到无空格、无中文的短路径,如
C:php74;安装 Microsoft Visual C++ 2015-2019 Redistributable (x64) - 修改
php.ini,这三项必须显式设置(删掉前面的分号):fastcgi.impersonate = 1cgi.fix_pathinfo = 1cgi.force_redirect = 0 - IIS 管理器 → 你的网站 → “处理程序映射” → “添加模块映射”:
请求路径:*.php
模块:FastCgiModule(注意大小写)
可执行文件:C:php74php-cgi.exe(必须是绝对路径 + .exe) - 应用程序池 → 高级设置 → “启用 32 位应用程序” =
True(即使系统是 64 位)
别碰 AppServ 9.x、PHPStudy 2020+ 和 Nginx 原生服务注册
这些在 Win7 上不是“能跑”,而是“看似启动成功实则不可靠”:
立即学习“PHP免费学习笔记(深入)”;
- AppServ 9.x 安装程序直接报错
MSVCP140.dll 丢失或弹窗“此应用无法在你的电脑上运行”——这是编译依赖 Win10 API,重装运行库无效 - PHPStudy 2020+ 启动卡在“正在启动服务…”,日志里出现
0x80070005(拒绝访问),本质是服务注册调用了 Win7 不支持的安全 API - Nginx 官方
nginx.exe不提供服务注册;用sc create强行注册后,常因工作目录未指定、pid 文件路径非绝对、SYSTEM 用户无写权限,导致服务状态卡在“启动中”且无法手动 start/stop - 真正兼容 Win7 SP1 的组合只有:
AppServ 8.6.0(最后官方支持版)
PHPStudy2018(内置 PHP 7.3.4 + Apache 2.4.39,全 VC14)
IIS + 手动 FastCGI(零第三方依赖)
端口冲突和权限问题是 Win7 环境最常被忽略的硬伤
Win7 系统服务默认更激进地抢占端口,且 UAC 权限模型比 Win10 更敏感:
- Apache 启动失败?先执行:
netstat -ano | findstr :80,查 PID 后用tasklist | findstr "PID"看是不是skype.exe或svchost.exe(后者可能是 IIS);关 IIS:管理员 CMD 运行net stop w3svc - PHP session 写失败、error_log 无法生成?检查 Apache/IIS 进程是否以 SYSTEM 身份运行,且日志/临时目录(如
C:php mp)对SYSTEM和IUSR用户有完全控制权限 - phpinfo() 显示正常,但 MySQL 扩展不生效?确认
php.ini真正被加载:在phpinfo()页面搜索 “Loaded Configuration File”,路径必须和你修改的php.ini一致;若显示“none”,说明PHPIniDir或PHPRC环境变量没设对 - 所有路径必须用正斜杠或双反斜杠:
C:/php/ext或C:\php\ext,单反斜杠C:phpext在配置文件中会被解释为转义字符



















