windows 上 怎樣編譯 php 和 xdebug的 原始碼

來源:互聯網
上載者:User

標籤:php   xdebug   源碼編譯   apache   

網上有很多的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了。

         




 







windows 上 怎樣編譯 php 和 xdebug的 原始碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.