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

WBOY
發布: 2016-08-08 09:28:32
原創
1052 人瀏覽過

網路上有很多的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模式:

先把環境配置在命名模式下進入2008的安轉路徑,假設在c:program filesmicorosft visual studio v9.0; 則再次進入該目錄下的vc子目錄:

cd vc

c:program filesmicorosft visual stuvcdio vual時執行vcvarsall.bat

c:program filesmicorosft visual studio v9.0vcvcvarsall.bat

這樣2008的執行環境就建立好了。

下一步就是進入到php-sdk目錄下,

e:php-sdk

執行

binphpsdk_setvars.bat

接下來執行:

bini*sd一子目錄phpdev,我們把下載回來的php原始碼放入到其子目錄vc9/x86下面,以5.4.73為例子,這樣就會目錄就會是這樣:

e:php-sdkphpdevvc9/x86/ php-5.4.37

進入到php-5.4.37目錄,執行

buildconf

這時會產生configure.bat和configure.js 檔案

再次執行:

configuredisable-alls --able -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的編譯環境,再用上面的方法把vs2003sdk,現通過菜單進入在xp的編譯環境,再用上面的方法把vs2008環境進來加。

要編譯xdebug,需要用到php的sdk, 這個可以從php 的源代碼中產生,只要在上面的環境中再次執行:

nmake install

預設情況下會在c盤產生php目錄,下面包含一個sdk子目錄,在這個目錄中,我們將看到有一個phpize.bat檔。

把xdebug源代碼釋放到前面的x86目錄下,假設為2.2.7版,這樣目錄就為xdebug-2.2.7

進入到這個目錄,執行phpize,一般帶全路徑執行:

c: phpsdkphpize

這樣會產生3個文件:configure.bat,configure.js,confi.nice.bat

再次執行

configure --with-xdebug

產生makefile

最後執行就這樣執行就這樣在

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-12.1-win333 src-r2.zip,apr-util-1.5.4-win32-src.zip

解壓縮它們並把它們放入原始碼srclib目錄下,如果有的就替換掉。

透過2003 sdk 的選單項目進入xp,32位元環境;

進入到原始程式碼目錄,執行:

nmake /f makefile.win

而後執行:

nm /fake時期:apache

這時會抱錯,缺少awk執行文件,但是你發現c:apache目錄下已經有東西了

把裡面的include 路徑和lib路徑拷貝到php 的deps 相對應路徑下,

depsincludeapache2_2udeclude (包含h檔)

depslibapache2_2           (包含lib檔案)

這時執行:

configure --disable-all --enable-apache2_2handlerhandleryal

configure .

         



以上就介紹了windows 上 怎麼編譯 php 和 xdebug的 原始碼,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板