Heim  >  Artikel  >  Backend-Entwicklung  >  windows 上 怎样编译 php 跟 xdebug的 源代码

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

WBOY
WBOYOriginal
2016-06-13 12:16:09724Durchsuche

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了。

         




 






Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn