搜尋
首頁後端開發php教程windows 上 怎样编译 php 跟 xdebug的 源代码

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

         




 






陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
高流量網站的PHP性能調整高流量網站的PHP性能調整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依賴注入:初學者的代碼示例PHP中的依賴注入:初學者的代碼示例May 14, 2025 am 12:08 AM

你應該關心DependencyInjection(DI),因為它能讓你的代碼更清晰、更易維護。 1)DI通過解耦類,使其更模塊化,2)提高了測試的便捷性和代碼的靈活性,3)使用DI容器可以管理複雜的依賴關係,但要注意性能影響和循環依賴問題,4)最佳實踐是依賴於抽象接口,實現鬆散耦合。

PHP性能:是否可以優化應用程序?PHP性能:是否可以優化應用程序?May 14, 2025 am 12:04 AM

是的,優化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)優化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,並避免使用

PHP性能優化:最終指南PHP性能優化:最終指南May 14, 2025 am 12:02 AM

theKeyStrategiestosigantificallyBoostPhpaPplicationPerformenCeare:1)UseOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)優化AtabaseInteractionswithPreparedStateTementStatementStatementAndProperIndexing,3)配置

PHP依賴注入容器:快速啟動PHP依賴注入容器:快速啟動May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依賴注入與服務定位器PHP中的依賴注入與服務定位器May 13, 2025 am 12:10 AM

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

PHP性能優化策略。PHP性能優化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP電子郵件驗證:確保正確發送電子郵件PHP電子郵件驗證:確保正確發送電子郵件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具