Maison  >  Article  >  développement back-end  >  windows 上 怎样编译 php 跟 xdebug的 源代码

windows 上 怎样编译 php 跟 xdebug的 源代码

WBOY
WBOYoriginal
2016-06-13 12:16:09757parcourir

windows 上 怎样编译 php 和 xdebug的 源代码

网上有很多的php源代码编译介绍,但是几乎没有xdebug 的源码编译的介绍,我这里结合自己的实际操作来谈一下,其中也会涉及到apache源代码的编译。

1. php编译

我们以vs2008来作为编译工具;其他还需要php的编译套件,这个可在php官方网下载http://windows.php.net/downloads/php-sdk/,下载这个吧:

php-sdk-binary-tools-20110915.zip

假设把它释放到e:\php-sdk目录下

从开始菜单进入command-line模式:

先把vs2008的环境配置好,在命名模式下进入2008的安转路径,假设在c:\program files\micorosft visual studio v9.0; 则再次进入该目录下的vc子目录:

cd vc

c:\program files\micorosft visual studio v9.0\vc 此时执行vcvarsall.bat

c:\program files\micorosft visual studio v9.0\vc\vcvarsall.bat

这样2008的执行环境就建立好了。

下一步就是进入到php-sdk目录下,

e:\php-sdk

执行

bin\phpsdk_setvars.bat

接下来执行:

bin\phpsdk_buildtree.bat phpdev

这下就会在当前目录创建一子目录phpdev,我们把下载回来的php源代码放入到其子目录vc9/x86下面,以5.4.73为例子,这样就会目录就会是这样:

e:\php-sdk\phpdev\vc9/x86/php-5.4.37

进入到php-5.4.37目录,执行

buildconf

这时会产生configure.bat和configure.js 文件

再次执行:

configure --disable-all --enable-cli

这时候就会产生makefile 文件,我们就可以用这个文件进行编译

直接执行nmake就可以了。


这时候只产生命令行的php执行档,如果想要架设web,那就需要一个cgi的php执行档,可在configure 后面加上 --enable-cgi,如下:

configure --disable-all --enable-cli --enable-cgi

有时候我们要需要产生apache能用的module ,就还要加上apache的参数(这里以apache 2.2为例子):

configure --disable-all --enable-cli --enable-cgi --enable-apache2-2handler

但请注意,这时候需要apache 的sdk(h文件和lib文件),官方已提供了2008的对应sdk包,它包含在deps文件里面,可在官方下载deps-5.4-vc9-x86文件。

下载后把它释放在deps目录下就可以了。


 后注:这个方法也适合vc6来编译5.3版的php,只是这时候要先安装2003sdk, 出错时要手动去更改一下文件(ext/standard/broscap.c文件有几处错误);

           另外官方不再提供vc6的依赖包,比如编译apache 的module就过不了,这时只有自己在去编译apache,把sdk提取出来。

2. xdebug 编译

前期准备:

需要2003sdk或 6.1 sdk,假设安装的2003sdk,现通过菜单进入在xp的编译环境,再用上面的方法把vs2008环境加进来。


要编译xdebug,需要用到php的sdk, 这个可以从php 的源代码中产生,只要在上面的环境中再次执行:

nmake install

默认情况下会在c盘产生php目录,下面包含一个sdk子目录,在这个目录中,我们将看到有一个phpize.bat文件。

把xdebug源代码释放到前面的x86目录下,假设为2.2.7版,这样目录就为xdebug-2.2.7

进入到这个目录,执行phpize,一般带全路径执行:

c:\php\sdk\phpize

这样会产生3个文档:configure.bat,configure.js,confi.nice.bat

再次执行

configure --with-xdebug

产生makefile

最后执行

nmake

这样就在

release_ts目录下产生了php_xdebug.dll


后注:2.2.7版的xdebug之能在php 5.4.37下编译成功,但不能在5.3.x 下编译成功。另外2.1.x的xdebug也不能在php 5.4.37 下正常编译。


3.apache 编译

vc6,2003sdk 可以编译2.2.22版apache,但前提条件是要下载:

apr-1.5.1-win32-src.zip,arp-iconv-1.2.1-win32-src-r2.zip,apr-util-1.5.4-win32-src.zip

解压它们并把它们放入源代码srclib目录下,如果有的就替换掉。

通过2003 sdk 的菜单项进入到xp,32位环境;

进入到源代码目录,执行 :

nmake /f makefile.win

而后执行 :

nmake /f makefilw.win INSTDIR=c:\apache

这时会抱错,缺少awk执行文件,但是你发现c:\apache目录下已经有东西了

把里面的include 路径和lib路径拷贝到php 的deps 相对应路径下,

deps\include\apache2_2    (包含h文件)

deps\lib\apache2_2           (包含lib文件)

这时执行:

configure --disable-all --enable-apache2_2handler

nmake

就可以产生apache 的module了。

         




 






Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn