簡體   English   中英

PHP MySQL 和正確的開發/登台,然后發送到生產服務器

[英]PHP MySQL and Proper Development / Staging before sending to Production Server

我剛剛啟動並運行了我的生產站點。 我還有很多工作要做,而且我現在意識到在將更改實時推送到生產站點(與用戶)之前需要一個開發服務器 - 顯然......

這個線程(以及 Stack 上的更多內容)描述了我: Best/Better/Optimal way to setup a Staging/Development server

無論如何...閱讀這些線程有時完全令人困惑,所有的術語都被拋出,以及我對 CentOS/Apache 的了解較少。

我的目標是:

  1. 根據需要對文件進行一些更改。
  2. 在同一台服務器上測試更改,以確保設置相同
  3. 如果一切正常,我現在可以在某個地方保存一個版本,也許現在本地就足夠了(Bazaar 似乎有可能?)
  4. 最后,通過 SSH 或 SFTP 或其他方式替換所有更改的文件...

我的擔心是:

  • 用戶在系統中時上傳更改。
  • 如何上傳已更改的文件,僅此而已。

我希望有人可以鏈接到我正在考慮的一個很好的指南(我希望這沒有留下任何想象) - 或者某種建議/等等......我在圈子里跑來跑去嘗試不同的東西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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM