如何搭建多人協同開發的開發測試環境?

web項目(PHP語言)現在整個項目有5個後台,三個前台。

有一台linux的測試伺服器,開發都是在win下。

實現的目的:

  1. 通過SVN實現代碼版本控制。
  2. 項目框架不是所有成員可見。(安全)

有實際實施經驗的歡迎回答指點。


說下大思路吧,具體操作網上很多。

這裡用svn來管理是完全滿足你需求的,找個linux的版本安裝部署上即可。另外項目框架單獨建立一個目錄,svn裡面建立用戶的時候可以授權到目錄即可。


說說我曾經實施過的一些方案細節:

1. SVN可以通過hooks來實現測試環境上的Auto Deploy. 無論是同步的方式,還是非同步轉交其他賬號的形式都不難做。 我用過走Web Request非同步,安全策略是必須本機發起更新請求;現在在用的方案是通過Gearman來解耦。

2. 代碼部署在測試環境上執行,但這個是純自動發布,工程師無權訪問。 但由於代碼是工程師寫的,隨便上個Web Shell還是能獲得的,這個主要通過兩個細節來規避:第一是代碼純SVN提交,純SVN更新,不得手工干預,因此可以排查Log追溯責任;第二是所有upload目錄必須在Web Server上設置不得執行PHP。 主要還是防君子。

3. 推薦使用三個獨立分離的環境:開發、測試、生產。 流程嚴謹的公司還會有預發布環境。 上面已經說了測試環境是SVN Hooks自發布。 開發環境我的做法是建立一個本地的windows共享,將其埠走SSH前轉到Linux伺服器(Nginx + PHP FastCGI)上,伺服器Mount後通過本地目錄提供服務。 最終實現的結果是,用戶本機修改文件,訪問開發機IP時,執行的是本機上的代碼,但連的是開發機的資料庫,並且如果訪問的關聯項目本地沒有的情況下使用伺服器上的版本(如其他人負責的部分)。 有一個類似的方案是伺服器上為每個用戶建目錄,並通過smb提供修改,通過COOKIE或子域名判斷該執行哪個用戶目錄下的代碼。

4. 最後插個話題外的事,SVN Hooks是好東西,我們還玩過提交內容長度控制、自動單元測試、每日修改列表自動匯總(早上上班前一次,中午吃飯時一次),JS自動壓縮等。


git linux putty


推薦閱讀:

項目經理和團隊之間應該保持什麼樣的距離?
需求變化太快,快速迭代已經不夠用了
【修真院「純潔」系列之二十四】十年敏捷開發Live開始了~
項目風險如何處理?——看看這三步走的原則
產品經理如何用「 石墨文檔 」管理項目?

TAG:項目管理 | PHP框架 | PHP開發 | 開發環境 |