3 分鐘快速建置可以編譯 PHP 原始碼的開發環境

整合 PHPBrew 及 Docker Image,就可以用簡單的 4 個步驟完成編譯環境的建置,立馬上手!

身為一位 PHP 開發者,不知道您是否曾經好奇自己每天使用的 PHP 直譯器是怎麼被編譯出來的呢?而有嘗試過的朋友是不是曾經因為步驟太過繁複而宣告放棄呢?

好在這道高牆在 Docker 技術及 c9s (林佑安) 大大開發 PHPBrew 後有了很大的不同,建置一個可以編譯 PHP 原始碼的開發環境只需短短不到 3 分鐘的時間。在這篇文章裡,我將以 Step by Step 的方式帶著大家把編譯 PHP 7.3 的環境建起來,並輔以社群志工 Duncan 精心錄製的 git 動畫,確保大家按圖施工、保證成功

P.S 若是您有報名由 Laravel 道場主辦、c9s (林佑安) 大大主講的「從 PHP Extension 開發實戰了解 PHP 核心原理」課程的話,請您務必在上課前將這個環境建置好再來上課,會讓學習更有效率喔!


下載 PHP 原始碼

為了編譯出 PHP 直譯器,首先我們得下載 PHP 的原始碼。目前 PHP 官方將原始碼放在 GitHub 上,請先把這個 Repository clone 回來到本機端,並將 branch 切到 7.3:

整個畫面流程應該會是這樣:

感謝 Duncan 協助錄製指令畫面

啟動 Docker 服務

為了大幅簡化環境建置的難度,c9s 已經幫大家把 PHPBrew 做成一個 Docker Image。因為接下來要開始使用 Docker,請您依照使用的作業系統平台啟動 Docker 服務。

若您的作業系統是 Microsoft Windows 系列的話,應該可以在命令提示字元使用 docker 指令查詢版本,畫面類似如下截圖:

在 Windows 命令提示字元確認 docker 指令

若您使用的作業系統是 macOS,則可透過應用程式資料夾啟動 Docker 服務,啟動完成後應該會在桌面右上角的 menu bar 上看到 Docker 圖示,畫面如下截圖:

在 macOS 上的 Docker 圖示

若您使用的是 Linux 系列,則可使用 systemctl status docker 查詢 Docker 服務是不是已經啟動?若有成功啟動的話應該畫面如下圖:

在 Ubuntu Linux 上確認 Docker 服務狀態

下載 PHPBrew Docker Image

確認 Docker 服務已經正確啟動後,接下來就只需要一個指令把 Docker Image 下載回來:

整個流程應該看起來像這樣:

感謝 Duncan 協助錄製指令畫面

啟動 Docker Image 並掛載 PHP 原始碼目錄

接著就要啟動這個 Docker Image 並把 PHP 原始碼目錄掛載到 Docker Image 裡使用,方便接下來的編譯工作,指令如下:

整個流程的畫面應該看起來像這樣:

感謝 Duncan 協助錄製指令畫面

針對使用到的指令稍做解釋:

  1. docker run 是要啟動 phdphpbrew/phpbrew:php7.3-minimum-zts 這個 Docker Image。參數裡的 $PWD:/src 是為了將當前的工作目錄掛載到 Docker Image 裡的 /src 位置。
  2. phpbrew use 是為了切換使用的 PHP 版本,本篇以 PHP 7.3 為示範。
  3. php -vphp-config 是為了檢查環境設定是不是正確的?假如沒有成功的話應該會有錯誤訊息。
  4. cd /src 進入 PHP 原始碼目錄,也就是我們剛剛 clone 回來的 PHP 原始碼資料夾。後續要跑編譯就都在這個資料夾裡進行。

完成!

就這樣,總共 4 步驟花費應該花不到您 3 分鐘的時間,就把一個可以編譯PHP 原始檔的環境建置起來了,簡單吧?希望這篇簡短的教學可以幫助您跨過第一道門檻。(有報名課程的同學別忘了在上課前完成喔!)


工商時間

Laravel 道場一直致力於提供最好的 PHP/Laravel 教育訓練及顧問服務。假如您認同我們的努力,麻煩按個掌聲;假如您對我們活動或服務有興趣,歡迎持續關注我們,若有任何建議或想法也歡迎與我們聯絡!

道場官網:https://www.laravel-dojo.com/
粉絲頁:https://www.facebook.com/LaravelDojo/
部落格:https://medium.com/laraveldojo