我已經在幾個PHP項目上工作過,並且總是在組織工作時遇到問題。你在哪裏開發你的應用程序 - 在本地主機,遠程服務器或可能是生產(!)? 當我在做一些主要路徑後,在我的本地主機上工作時,我通過ftp發送了新文件 - 但有時它恰巧忘記了一個文件,並且只是爲了瀏覽幾個directiores來複制已更改的文件而感到累人。 你提出了哪些最佳實踐?你如何管理PHP項目開發生命週期?
回答
這是我們如何管理我們的商業網站
- 開發在當地的沙盒
- 入住到SVN
- 自動構建/從SVN測試到內部 開發服務器
- 腳本部署使用rsync登臺 QA/UAT服務器
- 腳本部署到生產 服務器。
分段和生產服務器都由ISP託管,並且硬件和版本匹配並運行RHEL,內部Dev服務器與版本匹配的CentOS。
這樣,當代碼擊中生產服務器不應該有任何討厭的驚喜,因爲即使部署腳本獲取階段檢查4
我正在開發一個與生產環境相同的開發環境 - 它可以防止由於不同版本或配置而導致的某些不同行爲。完成後,我只是將所有文件移動到生產服務器上。
Winmerge是一個不錯的和免費的Windows工具來區分開發和生產機器之間的文件。
是不是就像有一個控制系統版本不回去的時間的能力嗎? – 2008-11-01 22:32:55
Google App Engine有一個適用的工具,可自動上傳到生產環境修改的文件;不知道PHP是否有類似的東西。 所以,做一個dev2prod腳本(一個自動執行此操作的腳本)應該是一個很好的解決方案。
要做本地源文件管理,大家可能會建議你使用source code control system。
在本地計算機發展與完全相同的配置,你的開發環境(即apache mods,php擴展等),使用版本控制系統(我更喜歡SVN)來跟蹤修改過的文件,以及哪些不是。
然後,您可以在生產環境或測試環境中編寫腳本,將文件從存儲庫複製/更新到Web服務器路徑。
可能得到告訴過改向老的文章,但這裏是一個使用免費的工具,它,我該怎麼辦:
我使用NetBeans,Git的,到位桶,源代碼樹,gitflow和FTPloy。
Bitbucket.com:免費註冊賬號。 SourceTree:免費的bitbucket。管理git存儲庫的好工具。所有提交,合併和拉取都可以在這裏完成。 bitbucket中的問題可以被追蹤。
在sourcetree中,選擇master分支,然後單擊「git flow」 - google gitflow - 這是功能,修補程序,開發和發佈分支和源代碼樹的奇妙工作流程,可幫助自動執行此過程。
FTPloy.com自動部署您的主分支。免費是一個回購/服務器。但值得升級,如果你想推動開發分支到服務器沙箱進行測試。
希望這可以幫助別人搜索網頁!
- 1. 你如何管理你的項目生命週期?
- 2. 系統開發生命週期和項目生命週期有什麼區別?
- 3. Lucene.NET生命週期管理
- 4. Autofac生命週期管理
- 5. Android項目生命週期 - 活動生命週期之前(Activity.onCreate())
- 6. 你會怎樣稱呼生命週期管理課程?
- 7. 實例生命週期管理
- 8. SimpleRepository的生命週期管理
- 9. DocumentDb - DocumentClient生命週期管理
- 10. 如何讓我的項目使用容器管理的Enitymanager生命週期而不是應用程序管理的生命週期?
- 11. 軟件開發生命週期資源
- 12. Apache NiFi的開發生命週期
- 13. Android開發生命週期設置
- 14. 分析服務項目生命週期
- 15. UIPasteboard(generalPasteboard)項目生命週期
- 16. Maven多模塊項目生命週期
- 17. 管理項目與管理開發
- 18. dotnet中的依賴關係管理和發佈生命週期
- 19. ASP.NET生命週期開始
- 20. 眨眼:如何使用春季生命週期管理?
- 21. 如何擴展/修改OSGi生命週期管理?
- 22. 如何注入Drone實例而不管理其生命週期?
- 23. spring如何管理hibernate會話生命週期
- 24. 如何使用Ninject MVC擴展來管理DbContext生命週期
- 25. 如何管理JCA ManagedConnectionFactory的生命週期?
- 26. 應用程序的生命週期:如何管理更新
- 27. 我應該如何管理MVC Core中的DbContext生命週期?
- 28. 如何在Dagger圖中生命週期管理對象
- 29. robospice如何管理活動生命週期?
- 30. 用於.NET開發的免費應用程序生命週期管理工具
我們除了我們使用SVN結帳,使舞臺構建做同樣的事情(允許指定修訂#或標籤 - 的情況下,後備箱undeployable) - 然後使用rsync,確保生產完全匹配階段。 – DavidWinterbottom 2008-11-02 10:46:19