在Windows下源码编译PHP

标签: , ,

最近在学习编写PHP拓展,懒得装Linux,就研究了一下在Windows下编译PHP的方法,总算搭建好了在Windows下开发PHP拓展的环境。

1、在C盘新建一个文件夹,C:\PHPDEV

2、从官网下载最新版(我这里用的是5.2.14)的PHP源码,将下tar.gz或tar.bz2压缩包保存到C:\PHPDEV,解压到当前文件夹

3、下载php win32 build extras并保存到C:\PHPDEV,解压到当前文件夹

4、获取编译好的bison.exeflex.exe,保存到桌面或者其他C:\PHPDEV以外的地方。分别打开压缩包并进入bin文件夹,将bison.exe和flex.exe复制到C:\Windows文件夹

5、假定你已经安装了Visual Studio 2008(我个人不推荐用Visual Studio 2008,推荐使用Platform SDK Febrary 2003,官方的编译版本就是用这个PSDK编译的,但是这里用Visual Studio 2008做说明),开始菜单->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 Command Prompt,打开Visual Studio 2008命令提示行

6、用cd命令将目录切换到C:\PHPDEV\php-5.2.14

7、输入buildconf.bat,回车。这个批处理的作用是搜索所有的.w32文件并为你创建configure.js

8、输入下面的命令

cscript /nologo configure.js –without-xml –without-wddx –without-simplexml –without-dom –without-libxml –disable-zlib — without-sqlite –disable-odbc –disable-cgi –enable-cli –enable-debug –without-iconv –disable-ipv6

为什么要disable和without那么多功能呢?因为这些功能需要的库文件并没有包含在PHP的源码包中(不然会很大),这些额外的库文件需要你自己去下载(要找全不是那么容易的)。如果你不禁用这些功能,会出现编译错误。

9、输入nmake,回车

10、第9步中可能会出现文件的编码错误,找到出现错误的文件,用EditPlus选择Western European (Windows)编码打开后另存为utf-8编码,重新nmake即可

11、编译好以后切换到C:\PHPDEV\php-5.2.6\Debug_TS,测试一下

php -r "echo ‘hello,world’;"

参考链接:

随机文章:

  1. 批处理技术内幕:序
  2. VBS的一个BUG
  3. VBS也玩验证码识别
  4. DEBUG命令揭秘
  5. iPad 2 完美越狱

3 条评论 发表在“在Windows下源码编译PHP”上

  1. Shore说道:

    你好!

    有没有办法生成PHP的vs项目文件?用nmake虽然能编译,但是要阅读代码还是需要一个IDE的。。。

    thx!

  2. mike说道:

    用这个方案来编译5.2.17的时候,编译到一半cl.exe提示出错。也不知道是哪里出了问题,总之暂时用博主的方案编译旧版本的5.2.14

    另外我编译的是Release版的,去掉了–enable-debug选项,目标文件生成在
    x:\php-dev\php-5.2.14\Release_TS

    第9步执行完以后,如果需要一份归档的zip包,可以再执行
    nmake snapshot
    将生成在Release_TS目录下(前提是有zip.exe在%PATH%的目录中)

    环境vc6+Platform SDK Febrary 2003

留下回复