在Windows下编译PHP内核代码
官方文档见:https://wiki.php.net/internals/windows/stepbystepbuild
我的环境:32位Windows7
1、安装 Visual Studio Community 2015 中C++的这部分。
2、下载: http://windows.php.net/downloads/php-sdk/php-sdk-binary-tools-20110915.zip
3、下载: http://windows.php.net/downloads/php-sdk/deps-7.0-vc14-x86.7z
如果是64位的Windows,则下载:http://windows.php.net/downloads/php-sdk/deps-7.0-vc14-x64.7z
4、解压第2步中下载的 php-sdk-binary-tools , 我放在了: E;\LearnPHP7 目录下。
5、打开 VS2015的《VS2015 开发人员命令行》
6、在命令行中切换到 E:\LearnPHP7 ,并执行 bin\phpsdk_buildtree.bat dev
7、该bat文件会在E:\LearnPHP7目录下创建 dev 目录, dev目录下又会创建 vc6、vc7、vc8 目录。
8、把vc6、vc7目录删除了,把vc8改名为vc14 。 (因为现有的编译脚本还没有完全为PHP7准备好,需要手动调整一下)
9、vc14 目录下的 x64 目录也可以删除了 (因为我是编译32位)
10、在 vc14\x86 下建立一个 src 文件夹, 目前的目录结构如下图:
11、解压 第3步中下载的文件 deps-7.0-vc14-x86.7z 到 E:\LearnPHP7\dev\vc14\x86\deps
下面主角登场了!
12、下载PHP7内核源代码(http://windows.php.net/downloads/releases/php-7.0.0-src.zip ),
解压到:E:\LearnPHP7\dev\vc14\x86\src
13、回到 VS2015 开发人员命令行, 当前位置是: E:\LearnPHP7 , 执行 bin\phpsdk_setvars.bat
14、命令行中执行 cd E:\LearnPHP7\dev\vc14\x86\src
15、命令行中执行 buildconf
16、命令行中执行 configure --disable-all --enable-cli
17、命令行中执行 nmake
等待一会儿后,在 E:\LearnPHP7\dev\vc14\x86\src\Release_TS 目录下就有编译好的PHP 7 了。
上面一步一步地记录了我编译的过程,看起来很繁琐,其实是四个步骤:
1、下载各种文件。
2、执行脚本建立对应的目录,并把下载的文件解压后放在正确的目录下。
3、运行编译脚本生成Makefile。
4、用VS2015 的 nmake 来编译代码。
说明:
1、上面第16步中的 configure 后面可以带各种参数,从而编译出不同的东东出来。 具体的细节我还在学习中。
2、configure --disable-all --enable-cli --enable-debug 这样配置可以编译出debug版本。 因为之后阅读PHP7的内核代码,免不了要用VS来跟踪代码,所以编译出一个debug版本对阅读代码的意义更大。
最后贴个图,纪念PHP7在2015-12-03发布!
这是我在PHP7发布的当天编译的一个版本。
QQ群:108111233