Windows 7 下 PHP 源码编译安装完整教程
Windows 7 已经停止官方支持很久了,但不少老旧机器或特定开发环境仍在使用它。从源码编译 PHP 的主要目的是自定义扩展、调试内核、或者需要官方二进制包没有提供的特殊配置。普通建站、学习 PHP 语法,直接用官方二进制包或集成环境(如老版本 XAMPP)更省事。只有需要深度定制时,才建议走源码编译这条路。
下面以 PHP 7.0 / 7.1(适配 Windows 7 较稳定)为例,给出可落地的完整步骤。更高版本对编译器要求更严,Win7 兼容性会变差,不推荐。
一、前期准备(版本必须匹配)
-
操作系统
Windows 7 32位或 64位均可,建议装好所有重要更新,至少有几个 GB 空闲磁盘空间。 -
安装 Visual Studio 2015
- 下载 Visual Studio 2015 Community(免费)。
- 安装时务必勾选「Visual C++」相关组件(包括 Windows SDK)。
- 安装完成后,从开始菜单找到「VS2015 x86 Native Tools Command Prompt」或「VS2015 x64 Native Tools Command Prompt」,后面所有命令都在这个专用命令提示符里执行(普通 cmd 不行)。
-
下载必要工具
- PHP SDK Binary Tools:从官方历史包或 GitHub 的 php-sdk-binary-tools 获取较老版本(适配 VC14)。
- 依赖库(deps):对应 PHP 7.0/7.1 的 VC14 x86 或 x64 包。
- PHP 源码:到 windows.php.net 下载 php-7.0.x-src.zip 或 php-7.1.x-src.zip。
把所有下载的文件放到一个干净的目录,比如 C:\php-build。
二、搭建编译目录结构
- 在 C 盘根目录新建文件夹
php-sdk。 - 把 PHP SDK Binary Tools 解压到
C:\php-sdk,解压后应能看到bin、script等子目录。 - 打开「VS2015 Native Tools Command Prompt」,执行:
cd C:\php-sdk bin\phpsdk_buildtree.bat phpdev - 如果脚本没有自动生成 VC14 目录,手动把
phpdev\vc9复制一份改名为vc14。 - 把下载的 deps 包解压到
C:\php-sdk\phpdev\vc14\x86\deps(或 x64)。 - 把 PHP 源码解压到
C:\php-sdk\phpdev\vc14\x86\php-7.0.x-src(目录名与版本对应)。
最终目录大概长这样:
C:\php-sdk\phpdev\vc14\x86\php-7.0.x-src
C:\php-sdk\phpdev\vc14\x86\deps
三、开始编译
-
在 VS2015 专用命令提示符中执行:
cd C:\php-sdk bin\phpsdk_setvars.bat -
进入源码目录:
cd C:\php-sdk\phpdev\vc14\x86\php-7.0.x-src -
生成配置脚本:
buildconf -
查看可用选项(可选):
configure --help -
配置编译参数(最小可运行示例):
configure --disable-all --enable-cli --enable-cgi --enable-session --enable-hash --with-sqlite3需要更多扩展时,在后面继续加
--enable-xxx或--with-xxx。注意依赖库必须已放在 deps 目录,否则会报错。 -
开始编译:
nmake这一步时间较长,机器配置一般的情况下可能要十几分钟到半小时。编译成功后,在源码目录下会出现
Release_TS(线程安全版)或对应目录,里面有php.exe、php7ts.dll等文件。 -
可选:打包快照
nmake snap会生成一个 zip 压缩包,方便以后复制使用。
四、安装与测试
- 把
Release_TS里的全部文件复制到一个固定目录,比如C:\php。 - 复制
php.ini-development为php.ini,用记事本打开,修改以下几处:extension_dir = "C:\php\ext"(改成实际路径)- 去掉需要的扩展前面的分号(如
extension=php_mysqli.dll) - 设置
date.timezone = Asia/Shanghai
- 把
C:\php加入系统环境变量 Path。 - 新开一个命令提示符,输入:
php -v能正确显示版本号就说明编译成功。
- 再写一个测试文件
test.php:<?php phpinfo(); ?>用
php test.php运行,能输出信息页面即可。
五、常见问题与注意事项
- 编译报错找不到头文件或库:检查 deps 是否解压到正确位置,重新执行
phpsdk_setvars.bat。 - nmake 中途失败:多半是某个扩展依赖没装全,先用
--disable-all只开 CLI 试通,再逐步加扩展。 - 运行时缺少 DLL:安装对应 Visual C++ 运行库(VC14)。
- 路径中不要有中文和空格:否则容易出各种奇怪错误。
- Win7 兼容性:PHP 7.2 及以后对编译器和系统要求更高,Win7 上成功率会明显下降。建议能升级系统就升级。
- 权限问题:尽量用管理员身份打开命令提示符。
- 备份:编译前把整个
php-sdk目录备份一次,出错后可以直接删掉重来。
源码编译成功后,如果只是跑网站,还需要单独配置 Apache 或 Nginx,把编译好的 php7apache2_4.dll(或对应版本)加载进去,并设置 PHPIniDir。这部分和官方二进制安装几乎一样。
对于绝大多数日常使用场景,直接下载对应 VC 版本的 PHP 官方二进制 zip 包解压使用,会省去大量编译时间。只有当你真正需要改内核或写扩展时,才值得花时间走源码编译这条路。按上面步骤认真做一遍,基本都能在 Windows 7 上成功跑起来。

还没有评论,来说两句吧...