社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
参考文献:https://wiki.php.net/internals/windows/stepbystepbuild
环境要求:
1)VS 2008
2) VS 2008 SP1
3)Window SDK 6.1
编译步骤:
1)建立php-sdk目录作为编译目录
2)下载binary-tools(http://windows.php.net/downloads/php-sdk/)并解压到php-sdk目录中,解压后,php-sdk目录包含bin,script,share三个目录
3)下载Window SDK 6.1(http://www.microsoft.com/en-us/download/details.aspx?id=11310),安装过程比较久,主要要选择安装C的编译器
4)安装完成后,打开SDK的CDM shell,并设置环境变量“setenv /x86 /xp /release”,如下图所示(默认启动的是debug的环境,设置为release后字体就变成绿色了)
5)进入php-sdk目录,并执行以下命令
binphpsdk_setvars.bat
binphpsdk_buildtree.bat phpdev
7)接下来,讲PHP源码解压到php-sdkphpdevvc[x]x[x]<php-source-directory>目录
8)php源码目录还有一个同级目录dep,按照官方的说明,你需要将编译php所需要用到的library复制到改目录。官方打包了最常用的扩展在这个地址(http://windows.php.net/downloads/php-sdk/),按编译的PHP版本下载即可。
接下来,我们要开始编译过程了
9)进入PHP源代码的目录,执行buildconf,返回Now run 'configure --help'
10)执行configure --disable-calendar ,配置编译php
11)执行nmake,完成编译
12)执行“nmake snap”
编译完成
PS:编译遇到的错误
1)calendar扩展编译错误,禁止掉即可--disable-calendar
extcalendarjewish.c(325) : error C2001: newline in constant
extcalendarjewish.c(326) : error C2001: newline in constant
extcalendarjewish.c(327) : error C2001: newline in constant
extcalendarjewish.c(328) : error C2001: newline in constant
NMAKE : fatal error U1077: '"C:Program Files (x86)Microsoft Visual Studio 9.0
VCBincl.exe"' : return code '0x2'
Stop.
fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version
'20070207'
LINK : fatal error LNK1257: code generation failed
NMAKE : fatal error U1077: '"C:Program Files (x86)Microsoft Visual Studio 9.0
VCBincl.exe"' : return code '0x2'
Stop.
PS:推荐的PHP常用配置
configure --enable-apache2-4handler --enable-apache2-2handler --disable-cgi --disable-calendar --enable-pdo --with-pdo-sqlite=shared --enable-mbstring=shared --enable-mbregex
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!