这里以win7系统用vs2008编译5.3.18为例
准备文件
2、deps-5.3-vc9-x86.7z和php-sdk-binary-tools-20110915.zip这两个包可以从http://windows.php.net/downloads/php-sdk/ 获得
操作步骤
1、安装Windows sdk 6.1(可以选择不安装文档和示例)
2、安装Visual Studio 2008(c++支持是必须的,不清楚的最好也安装,或者用推荐安装方式)
3、运行SPInstaller.exe安装VS2008SP1补丁,注意和步骤1,2的安装顺序不能错。
4、创建目录c:\php-sdk
5、把php-sdk-binary-tools-20110915.zip里的文件解压到c:\php-sdk里,当前目录里应该有bin,script,share三个目录
6、开始菜单打开windows sdk 6.1 shell根据php版本执行如下命令
如果是PHP 5.2, 5.3 and 5.4:
setenv /x86 /xp /release
如果是PHP 5.5+:
setenv /x86 /2008 /release
然后再执行如下命令
cd c:\php-sdk\
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat php53dev
7、把php源码解压到C:\php-sdk\php53dev\vc9\x86目录,最后得到的目录应该是
C:\php-sdk\php53dev\vc9\x86\php-5.3.18-src
8、用deps-5.3-vc9-x86.7z加压的deps目录覆盖掉C:\php-sdk\php53dev\vc9\x86\deps目录
9、执行命令生成configure.js
cd C:\php-sdk\php53dev\vc9\x86\php-5.3.18-src
buildconf
10、创建最小化的编译makefile
configure --disable-all --enable-cli
可以通过help命令查看支持的选项,如
configure --help
11、编译生成二进制文件,在Release_TS目录
nmake
12、打包成二进制包的结构 ,并用 zip 打包,在Release_TS/php-5.3.18-Win32-VC9-x86.zip
nmake snap
13、测试是否可以正常执行
cd Release_TS
php.exe -m
14、编译一个完整的php二进制包
把C:\php-sdk\php53dev\vc9\x86\deps\include\libpng目录中的文件拷贝到C:\php-sdk\php53dev\vc9\x86\deps\include\中,不然会编译不到gd库
configure --enable-snapshot-build
nmake
nmake snap
添加pecl扩展
在C:\php-sdk\php53dev\vc9\x86目录下创建pecl目录,里面放扩展目录,以dbase为例,则是C:\php-sdk\php53dev\vc9\x86\pecl\dbase
cd C:\php-sdk\php53dev\vc9\x86\php-5.3.18-src
buildconf
configure --enable-cli --enable-dbase
nmake
nmake snap
添加自定义扩展
以smtpmail为例,需要安装cygwin全默认就行,生成扩展目录
cd ext
..\Release_TS\php.exe ext_skel_win32.php --extname=smtpmail
方法1)如果使用命令行编译
修改config.w32把ARG_ENABLE前面的//去掉保存,执行命令
cd ../
buildconf
打开configure.js找到行
ARG_ENABLE("smtpmail", "enable smtpmail support", "no"); */
去掉多出来的*/最终效果为
ARG_ENABLE("smtpmail", "enable smtpmail support", "no");
执行编译命令
configure --enable-smtpmail=shared
nmake
nmake snap
方法2)用vc2008的IDE打开编译
如果报php5ts_debug.lib不存在就从Release_TS\php-5.3.18\dev目录拷贝php5ts.lib到smtpmail目录,重命名为php5ts_debug.lib
参考: