在windows平台上構建自己的PHP(php5.3+)_PHP教程

來源:互聯網
上載者:User
這是一篇翻譯的文章,原文參見:https://wiki.php.net/internals/windows/stepbystepbuild

順便提一句,wiki.php.net有很多精彩的內容,想深入瞭解php的同學千萬不要錯過:)

準備工作

在windows平台上編譯php,需要三樣準備工作:

1,合適的編譯環境,包括安裝一個編譯器、正確的SDK以及對應的binary tools

2,編譯PHP需要用到的第三庫、標頭檔

3,PHP原始碼

構建環境

這是在windows平台上編譯php最困難的部分,因為建立這樣的編譯環境需要大量的磁碟空間,可能會有數G

需求:

  • Microsoft Visual C++,官方的PHP版本支援VC++6.0和VC++9.0(即VC++2008),Express版本的也行。MinGW和其他的編譯器是不被支援的。
  • 正確的windows SDK 或者Platform SDK,SDK需要與VC版本對應,詳見https://wiki.php.net/internals/windows/windowssdk
  • 編譯時間用到的binary tools,詳見http://windows.php.net/downloads/php-sdk/

註:

最新的php5.5可以用VC++9或者VC++11編譯,不過5.5尚未正式發布。

如果使用的是VC6,則需要安裝Windows Server Feb.2003 SDK,如果使用的VC9則需安裝SDK6.1

構建步驟

1,安裝vs2008

2,安裝windows sdk 6.1

3,獲得php 5.3源碼,可以從此處擷取snapshot (先不要解壓)

4,建立檔案夾c:\php-sdk

5,解壓binary-tools.zip 至c:\php-sdk檔案夾中。binary-tools.zip可以從此處擷取(http://windows.php.net/downloads/php-sdk/)。解壓後C:\php-sdk中應該包含bin,script,share等子目錄。

6,開啟windows sdk 6.1 shell,直接下述指令:

  PHP 5.2, 5.3 and 5.4:

setenv /x86 /xp /release

  PHP 5.5+:

setenv /x86 /2008 /release

7,

cd c:\php-sdk\

8,

bin\phpsdk_setvars.bat

9,

bin\phpsdk_buildtree.bat php53dev

10,現在解壓第3步中下載的snapshot至C:\php-sdk\php53dev\vc9\x86檔案夾中。解壓完成之後,目錄路徑形如C:\php-sdk\php53dev\vc9\x86\php5.3-xyz。

11,在C:\php-sdk\php53dev\vc9\x86中,有一個deps檔案夾。下載編譯所依賴的一些libraries,並且解壓至其中。這些libraries可以從http://wiki.php.net/internals/windows/libs獲得。確保解壓完成之後,deps下包含/include和/lib目錄。(註:筆者直接從http://windows.php.net/downloads/php-sdk/下載了deps-5.3-vc9-x86.7z可以順利編譯通過)

12,繼續在windows-sdk-shell中運行

cd C:\php-sdk\php53dev\vc9\x86\php5.3-xyz

13,

buildconf

14,查看編譯選項

configure --help

15,根據自己的需要輸入構建指令:

configure --disable-all --enable-cli 編譯最簡單的PHP核心並且只支援cli運行方式

(注: 一些擴充需要lib,標頭檔甚至其他程式,詳見libs ,下載自己所需的版本並且解壓至deps檔案夾c:\php-sdk\php53\vc9\x86\deps)

16,

nmake

17,如果你需要壓縮編譯好的php檔案,繼續執行:

nmake snap

18,編譯完的PHP位於C:\php-sdk\php53dev\vc9\x86\php5.3-SNAPSHOTTIME\Release_TS目錄。

修改並重新編譯

1,清除上次的編譯結果

nmake clean

2,如果你需要重新config

buildconf --force

3,輸入新的configure配置

configure --disable-all --enable-cli --enable-$remains

4,編譯

nmake

如果只編譯最精簡的PHP(僅enable-cli),編譯成功之後,可以觀察一下編譯了哪些EXT,SAPI:

除了standard(標準擴充),這個php版本只含有date,ereg,pcre,reflection,SPL幾個擴充,它們的源碼都可以在php-src/ext中找到。

http://www.bkjia.com/PHPjc/440292.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/440292.htmlTechArticle這是一篇翻譯的文章,原文參見:https://wiki.php.net/internals/windows/stepbystepbuild 順便提一句,wiki.php.net有很多精彩的內容,想深入瞭解php的同學...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.