[英]PHP MySQL and Proper Development / Staging before sending to Production Server
我剛剛啟動並運行了我的生產站點。 我還有很多工作要做,而且我現在意識到在將更改實時推送到生產站點(與用戶)之前需要一個開發服務器 - 顯然......
這個線程(以及 Stack 上的更多內容)描述了我: Best/Better/Optimal way to setup a Staging/Development server
無論如何...閱讀這些線程有時完全令人困惑,所有的術語都被拋出,以及我對 CentOS/Apache 的了解較少。
我的目標是:
我的擔心是:
我希望有人可以鏈接到我正在考慮的一個很好的指南(我希望這沒有留下任何想象) - 或者某種建議/等等......我在圈子里跑來跑去嘗試不同的東西SVN 和管理它們的程序等...
我是唯一一個正在開發的人,並且只想要一個可重復的、值得信賴的解決方案,它可以為我工作,而不會讓我的生活變得太痛苦,試圖設置它(並保持它設置)。
非常感謝。
如果您有能力在生產服務器上創建暫存子域,那么我將(並且確實)處理它:
在您的開發機器上進行開發,將您的代碼存儲在 VCS 中。 我使用顛覆,但你可能會找到另一個你喜歡的。 進行更改后,您將簽入您的代碼。
在您的生產服務器上,您在 Apache 虛擬主機中創建一個子域,該虛擬主機與您的生產虛擬主機相同,但與您的生產虛擬主機隔離。 將您的代碼從 VCS 簽出到暫存子域區域。 進行更改后,您可以從您的 VCS 運行更新,這只會拉下已更改的文件。 暫存和生產共享相同的數據集,或者您可能為每個擁有一個單獨的數據庫。
使用子域而不是僅使用不同目錄的原因是,它使您能夠將相同的 DocumentRoot 用於登台和生產。 如果您使用類似staging.example.com
之類的東西,也很容易識別您的位置。
當您確定一切正常時,您可以在生產端運行 VCS 更新以使代碼保持最新。
請務必確保您已指示 Apache 禁止訪問 VCS 元數據目錄(.svn、.git 等)。
附錄
要禁止訪問.svn
目錄,請使用如下重寫規則:
RewriteEngine on
RewriteRule .*\.svn/.* - [F]
這將在他們身上發送一個 403。 您還可以將它們重定向到主頁,以使它們的存在變得不那么明顯。
關於擔憂 #1,請記住,當人們使用 StackOverflow 時,它也會定期停機進行維護。 只需為您提供一個很好的機制來將站點切換到維護模式(並退出),您就會沒事的。
謝謝大家的提示/提示/等...
我終於找到了滿足我需求的完美解決方案,SpringLoops ... http://www.springloops.com/v2/
它管理我的 SVN(我使用 Tortoise SVN) - 並將實際部署到我的兩個站點上:登台和生產。
我強烈推薦它,到目前為止它工作得很好。
謝謝!
您需要一個版本控制系統,例如 Subversion、Git 或 Mercurial。
更改文件時,會將這些更改提交到存儲庫。 這會跟蹤您所做的所有更改,如果您發現您做了一些愚蠢的事情,您可以撤消它們。 它還可以讓您恢復意外刪除或丟失的文件。
最重要的是,它使部署更新變得像在生產服務器上鍵入“git update”或“svn update”一樣簡單。 只有更改的文件才會被傳輸並放置到位。
無論這個問題被重復問多少次,你都會得到這個建議。 你需要版本控制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.