2024 年日本 PHP 研討會

作業系統準備

改進 PHP 需要一個可運作的建置環境來測試變更,以下章節將說明如何設定一個可運作的建置環境。

您的建置環境應具備適當的工具鏈,其中包含可運作的 C 編譯器;對於不在 Microsoft Windows 中工作的使用者,您將需要一個可運作且相容的 autotools 安裝,以及至少一個共享的 zlib 副本。

對於大多數類 Unix 作業系統,可能需要一些外部依賴項才能完成建置;如果建置因為缺少標頭檔或程式庫而失敗,則發出以下命令的變體應可解決這些依賴項,從而允許建置繼續

  • [sudo] yum|apt-get|ports install package[-dev[el]]

對於在Ubuntu Linux中工作的使用者,您可以執行以下命令來自動安裝依賴項

  • sudo apt-get build-dep php5
如果擴充功能的編譯因為缺少依賴項而失敗,Ubuntu Linux可以嘗試透過發出以下命令來自動解決這些依賴項
  • sudo apt-get build-dep php5-extname

下表顯示 Microsoft Windows 使用者建置 PHP 所需的項目

PHP Visual C++ MS SDK DEPS PHP SDK
5.3 Visual Studio 2008 6.1 x86 這裡
5.4 Visual Studio 2008 6.1 x86 這裡
5.5 Visual Studio 2008 6.1 x86 這裡
5.5 Visual Studio 2012 不適用 x86x64 這裡

注意: 如果需要 Windows SDK,建議在安裝 Visual Studio 之前 先安裝 SDK。

準備工作區

Windows 使用者現在應該下載 PHP SDK 並解壓縮到他們的工作區,然後在適當的 Visual Studio 命令提示字元中執行以下命令

Visual Studio 2008

  • setenv /xp /Release /x86
Visual Studio 2008 和 2012
  • cd C:\path-to-workspace
  • bin\phpsdk_setvars.bat
  • bin\phpsdk_buildtree.bat phpdev
Windows 現在應該將目錄切換到 C:\path-to-workspace\phpdev\VCXX\XARCH,並將其視為目前建置的工作區根目錄。

接下來,所有人都需要透過 git 取得指定版本的 PHP 原始碼

  • git clone -b BRANCH https://github.com/php/php-src .
BRANCH 應該替換為適當的分支名稱,例如 PHP-5.5

此時,您已經擁有一個可運作的建置環境和您所選 PHP 分支的原始碼,在您進行任何更改之前,最好先建立一個新的分支並切換到它,以便準備進行您接下來的精彩修改。

  • git checkout -b my-awesome-changes

建置您的開發版 PHP

現在所有作業系統的其餘建置流程都趨於一致(幾乎沒有差異)。

  • buildconf: generates the configure script for PHP
  • configure: configures the build of PHP and creates Makefile
  • make: builds PHP
  • make test: runs testsuite
  • make install: installs PHP

對於 Microsoft Windows 作業系統,這些命令如下所示

  • buildconf
  • configure --with-prefix=C:\my-awesome-php
  • nmake
  • nmake test
  • nmake install

而對於其他作業系統,這些命令如下所示

  • ./buildconf
  • ./configure --prefix=/opt/my-awesome-php
  • make
  • make test
  • make install

configure 腳本幾乎可以自訂 PHP 的每個方面,如需在命令提示字元中取得說明,請將 --help 作為 configure 的唯一參數傳遞。

configure 執行時,它會將傳入的選項儲存到可重複使用的 config.nice 中,該檔案在被呼叫時會執行 configure

建置成功完成後,建議執行測試套件,這將有助於您識別工作中的回歸問題。執行測試套件可能需要一段時間;您可以出去跑步或吃個漢堡。

也可以透過以下方式執行一組(目錄)測試

  • [n]make test TESTS=sapi/cli

To Top