php 5.4 在 windows 7 搭建的核心难点是模块版本错配、路径硬编码失效、cgi/fastcgi 模式混淆;需严格匹配 apache 与 php 的 vc 编译版本,正确配置 loadmodule 路径、extension_dir、phprc 环境变量,并安装对应 vc 运行库。

php5.4 在 Windows 7 上搭建,核心难点不是“装不上”,而是模块版本错配、路径硬编码失效、CGI/FastCGI 模式混淆——尤其当你看到 500 Internal Server Error 或 PHP is not recognized as an internal or external command 时,90% 都卡在这三处。
httpd.conf 中 LoadModule 路径和 DLL 名称必须严格匹配
Apache 2.2 和 Apache 2.4 对 PHP 模块的命名、编译链、调用方式完全不同:
- Apache 2.2(VC6 编译)不能加载 VC9 编译的
php5apache2_2.dll(哪怕文件存在也会静默失败) - Apache 2.4 必须用 VC9/VC11 编译的 Apache + 对应 VC 版本的 PHP(
php-5.4.44-Win32-VC9-x86.zip对应php5apache2_4.dll)
常见错误现象:
- 启动 Apache 报错:
Cannot load C:/PHP54/php5apache2_4.dll into server: The specified module could not be found. - 实际原因是缺
msvcr90.dll(Visual C++ 2008 运行库),不是 DLL 本身丢失
实操建议:
- 先装
Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)(32 位系统必装,64 位也装 x86 版) - 确认 Apache 和 PHP 的 VC 版本一致(查 PHP 官网下载页标注:VC9 / VC11 / VC15)
-
LoadModule行末尾不能有空格或中文符号,路径用正斜杠或双反斜杠:LoadModule php5_module "C:/PHP54/php5apache2_4.dll"
php.ini 中 extension_dir 和扩展启用顺序影响 MySQL 连接
php5.4 默认禁用所有扩展,且 mysqli 和 mysql 扩展不共存(后者已废弃,但某些老 CMS 仍依赖):
-
extension_dir必须是绝对路径,且结尾不带反斜杠:extension_dir = "C:/PHP54/ext"(写成"C:\PHP54\ext\"会失败) -
php_mysql.dll和php_mysqli.dll必须同时启用才能覆盖不同代码需求 -
libmysql.dll必须放在System32(32 位系统)或SysWOW64(64 位系统)中,否则mysqli_connect()直接返回 false 无报错
实操建议:
- 修改
php.ini前先复制备份(如php.ini.bak) - 取消注释以下三行(注意顺序):
extension_dir = "C:/PHP54/ext" extension=php_mysql.dll extension=php_mysqli.dll
- 将
C:/PHP54/libmysql.dll复制到C:/Windows/SysWOW64(Win7 64 位)或C:/Windows/System32(Win7 32 位)
IIS7 下用 FastCGI 运行 php5.4 必须配置 PHPRC 环境变量
IIS 不读取系统 PATH 或当前目录下的 php.ini,它只认 PHPRC 指向的路径:
- 如果没设
PHPRC,IIS 会用默认极简配置,导致date.timezone报错、upload_max_filesize无效、MySQL 扩展加载失败 - 错误现象:
Warning: mysqli_connect(): It is not safe to rely on the system's timezone settings,或连接数据库返回空结果
实操建议:
- 在 IIS 管理器 → “处理程序映射” → 选中
php-cgi.exe→ “编辑” → “环境变量” → 添加:Name: PHPRC Value: C:\PHP54
- 确保
C:\PHP54\php.ini存在且可读(权限不要继承自只读父目录) - 不要用
php.ini-development或php.ini-production直接改名了事;先打开确认date.timezone = "Asia/Shanghai"已设置
php5.4 是最后一个支持 Windows XP/Win7 32 位原生运行的主流 PHP 版本,但它对路径大小写不敏感、对 DLL 依赖极敏感。最容易被忽略的是:Apache 配置改完必须重启服务(不是刷新页面),IIS 改完环境变量必须回收应用程序池(不是重启网站)——这两步跳过,99% 的“配置成功”都是假象。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











