從一個概有舊專案下載到本機成功執行:利用 GitHub Copilot 快速完成環境建置與問題排查
在此之前都是介紹透過 AI 處理從0到有的系統,但有時在公司會接手一個沒有文件、沒有環境說明的既有專案,往往比從零開始開發更具挑戰性。除了需要快速理解系統架構之外,還必須在最短時間內建立可執行的開發環境,並解決因版本升級或環境差異所衍生的各種問題。
這次我嘗試將 GitHub Copilot 作為主要協作工具,從分析專案、補齊文件、建立 Docker 開發環境,到排除執行時的錯誤,完整驗證 AI 在維護既有專案上的實際價值。
這篇文章將分享整個流程,以及我是如何一步一步完成以下工作:
- 分析既有專案架構與技術棧
- 自動整理並產生專案文件(README、Copilot Instructions)
- 建立 Docker 本機開發環境
- 解決登入帳號與密碼驗證問題
- 排查 PHP 版本相容性造成的畫面空白問題
- 完成修復並成功讓專案在本機正常運行
整個流程如下圖所示:

專案背景
本次使用的是一個既有 PHP Web 專案,最近剛好換電腦,有很多東西都重置了,所以就來試試。這個專案中並沒有完整的開發文件,並且也不是使用市面上常用的 framework,因此第一步便是透過閱讀程式碼來理解整體架構,包括:
- 專案目錄結構
- 路由與 Ajax 流程
- 資料庫存取方式
- 系統角色與權限
- 使用的技術棧
在完成分析後,再利用 Copilot 協助整理成完整的 README,讓後續維護者可以更快速進入狀況。
建立可重現的開發環境
為了避免不同開發者之間的環境差異,我將整個專案 Docker 化,建立包含:
- PHP + Apache
- MySQL
- 初始化資料庫
- VirtualHost 設定
只需要一個 docker compose up -d –build,即可快速重建完整開發環境,大幅降低新成員加入專案的成本。
AI 不只是寫程式,更能協助除錯
建置完成後並非一路順利。
首先遇到的是登入問題,由於資料庫中的密碼採用 bcrypt 雜湊,無法直接登入,因此透過 Docker 容器產生新的 bcrypt Password Hash,再建立測試帳號完成驗證。
接著又遇到最棘手的問題──首頁完全空白,但沒有任何錯誤訊息。
透過逐步確認資料庫、模擬 HTTP Request、分析 HTML 回傳內容,最後定位到問題出在 PHP 8.2 對 count(null) 的行為變更,導致舊版程式在渲染過程中直接中斷。
只需將:
!is_array($func_list) && count($func_list) == 0
修改為:
empty($func_list)
便成功解決相容性問題,整個網站也恢復正常運作。
總結
這次最大的收穫,不只是成功將舊專案搬到本機,更驗證了 GitHub Copilot 在維護既有專案上的價值 。
它不只是協助撰寫程式碼,更能在以下幾個面向提供明顯幫助:
- 快速理解陌生專案
- 自動補齊專案文件
- 建立標準化 Docker 環境
- 協助分析錯誤原因
- 提供修復建議並驗證結果
對於維護 Legacy System 而言,真正耗費時間的通常不是「寫功能」,而是「理解系統」與「找出問題」。透過 AI 的協助,許多原本需要數小時甚至數天的工作(ex: docker 建立、系統錯誤排查及建立相關文件),都能在更短時間內(從天到小時)完成,讓開發者能將更多心力放在真正有價值的功能開發與系統優化上。
原本有點擔心沒有 framework 的專案會造成 AI 的混亂,最後發現我錯了,AI 使用的方案還比我之前的還更好。希望這篇文章能提供給正在接手舊專案、或準備導入 AI 協作開發的工程師一些參考與靈感。