这里以win7系统用vs2008编译5.3.18为例
准备文件
1、Microsoft Visual Studio 2008,VS2008SP1补丁和Microsoft Windows SDK v6.1
如果使用其它版本,可以到这里找https://wiki.php.net/internals/windows/compiler
2、deps-5.3-vc9-x86.7z和php-sdk-binary-tools-20110915.zip这两个包可以从http://windows.php.net/downloads/php-sdk/ 获得
3、php源码 从http://windows.php.net/downloads/releases/ 下载
4、cygwin 从http://www.cygwin.com/下载
操作步骤
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
setenv /x86 /2008 /release
cd c:\php-sdk\ bin\phpsdk_setvars.bat bin\phpsdk_buildtree.bat php53dev
cd C:\php-sdk\php53dev\vc9\x86\php-5.3.18-src buildconf
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
参考:
https://wiki.php.net/internals/windows/stepbystepbuild
http://www.phpvim.net/web/php/build-php5-4-and-xdebug-on-win32.html
http://demon.tw/software/compile-php-on-windows.html
http://hi.baidu.com/outofthinking/item/3baeb0c5311c262c46d5c0b5