
我正在研究燈應用。我們有 2 台伺服器(Debian)Live 和 Dev。
我不斷地在 dev main 上工作以添加新功能並修復錯誤。
當高興時一切正常,我將相關代碼傳送到 Live 系統。資料庫(mysql)對於每台機器來說都是本地的。
現在這確實是非常基本的設置,我想稍微改進一下工作流程。我使用 git 和 github 進行版本控制。誠然,我只真正使用過一個分支。他們可以是 3 個不同的開發人員,他們在不同的時間處理程式碼。我們都使用相同的linux使用者名稱連接到開發伺服器並在需要時直接編輯程式碼。我通常會在一天結束時提交程式碼並將其推送到 github。
需要記住的一件事是,在本機電腦上運行此程式碼並不容易,因為有許多 apache 和子網域配置無法在本機電腦上運行,因此在非本機的開發伺服器上運行非常重要。
我需要建立一個新流程,因為我們現在需要一個主幹和一個需要重寫大量程式碼的分支。
做這個的最好方式是什麼。我是否應該為每個開發人員建立不同的 Unix 登入名,並在開發伺服器上設定不同的工作區域以進行更改?例如
/var/www/mysite_derek /var/www/mysite_paul /var/www/mysite_mike
我的想法是他們可以從主分支中拉取,然後創建自己的分支並將其合併回來。
我還需要建立不同的 github 使用者帳戶嗎?
我想以「正確」的方式做到這一點,並為未來提供大量潛在開發人員的證據,但我也不想讓事情變得過於複雜。我首選簡單而優雅的解決方案。
有什麼建議或建議嗎?
答案1
我們與大約 12 名開發人員一起使用的解決方案如下。它工作得很好,並且可以進行靈活的設置,而無需再修改伺服器的配置。由於網路延遲和伺服器儲存速度的原因,它可能不會擴展到 40-50 名開發人員。
我們分享/var/www/透過 Samba 建立樹,因此 Windows 用戶端可以使用其本機 IDE 和 VCS 用戶端在 LAMP 伺服器上進行編輯。沒有人在 Linux 伺服器上擁有帳戶。
像這樣建立你的目錄結構:
/var/www/mysite.com/www/derek/
/var/www/mysite.com/www/paul/
/var/www/mysite.com/www/mike/
在您的內部 DNS 中,建立一個通配符記錄,將 **.dev* 指向您的 lamp 伺服器的 IP 位址。我假設123.45.67.89這裡。
在 Apache 中,定義一個類似的虛擬主機:
<VirtualHost 123.45.67.89>
ServerName lamp.dev
ServerAlias *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/%-4/%1/
</VirtualHost>
重要的部分是 ServerAlias 通配符,它會使該虛擬主機回應所有以「.dev」結尾的傳入請求。另一個重要的是 VirtualDocumentRoot,它看起來很複雜,但也不錯。它只是將傳入的主機名稱分成幾個部分,並從這些部分建構出 DocumentRoot。你可以在這裡閱讀更多相關信息。
現在,任何開發者都可以訪問http://derek.www.mysite.com.dev/並查看他們的 mysite 個人工作副本。
新增網站、子網域或開發人員只需在 Samba 共用上建立正確的目錄即可。
為了部署到生產伺服器,我建議您放棄 scp 並查看卡皮斯特拉諾,以及優秀的集中式 Web 前端韋比斯特拉諾。 Capistrano 有點以 Rails 為中心,但只需要幾行程式碼就可以適應 PHP。 Webistrano 提供了一個中央 GUI,您只需按一下按鈕即可直接從版本控制部署或更新網站。不應忽視輕鬆編寫腳本的部署,可以可靠地重複並在出現問題時回滾。