在windows下编译PHP(5.4版本)

来源:互联网 发布:component 源码 编辑:程序博客网 时间:2024/06/07 14:21

参考文献: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目录,并执行以下命令

bin\phpsdk_setvars.batbin\phpsdk_buildtree.bat phpdev

7)接下来,讲PHP源码解压到php-sdk\phpdev\vc[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

ext\calendar\jewish.c(325) : error C2001: newline in constantext\calendar\jewish.c(326) : error C2001: newline in constantext\calendar\jewish.c(327) : error C2001: newline in constantext\calendar\jewish.c(328) : error C2001: newline in constantNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\cl.exe"' : return code '0x2'Stop.

2)连接错误,需要安装vs2008 SP1,下载地址(http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13276)

fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version'20070207'LINK : fatal error LNK1257: code generation failedNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\cl.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 








2 0