問題描述

我正在想出兩個 (現在) 人的工作流程。其中一人正在做主題工作,另一個將在寫內容。我們不是 co-located 將不會很快。

作者對原始碼管理非常陌生,最好是第二階段的事情。我可以把 MAMP 放在她的盒子上,讓她寫在那裡,如果是這樣的方法,最好將這兩個解決方案進行整合?

我已經看過這個問題:How to best setup for development for a two person bi-coastal team?,但由於它是兩歲,我以為我會看到有什麼變化。

最佳解決方案

注意:非常 mac /linux /unix 為中心的想法。包括很多命令列 fu 。

將所有程式碼放在版本控制下

我喜歡 git Mark Jaquith 對於使用 Git 和子模組的 WordPress 核心的 k eeping an entire site under version control 有一些很好的建議。您也可以將外掛作為 git 子模組。

團隊的開發人員結束將在本地工作,測試和提交任何更改,然後將程式碼推送到中央儲存庫 (Github 與私人備份,Beanstalk,您的伺服器,沒關係) 。從那裡您可以使用部署工具 (Capistrano 等) 或簡單的 SSH 到您的開發伺服器 (參見步驟 2) 和 git pull 在您的更改。

確保將您的靜態檔案目錄 (例如上傳的影像和內容) 新增到.gitignore 檔案中。

設定開發伺服器

例如。在主站點的子域上安裝 WordPress,如 staging.yoursite.comdev.yoursite.com 。這是新程式碼的測試基礎,您的內容製作者將在哪裡工作。我建議完全保持在一個獨立的伺服器上。

為您的內容產品提供登入站點的使用者名稱和密碼,並讓他們生成並寫入所有內容。您還將把最新的程式碼更改提交到此網站,以便在將其推送到生產 (即時) 站點之前進行測試。

從開發伺服器,您可以進行硬資料庫匯出,並將其用於將所有內容放在即時站點上。

在 dev 伺服器上:

shell$ mysqldump -p -u your_dbuser yourdatabase > the-file.sql

透過生產伺服器傳送檔案和…

shell$ mysql -p -u your_dbuser your_database < the-file.sql

還有另一個選擇,我剛剛很高興與所謂的 RAMP by Crowd Favorite 合作。它會將內容從一個伺服器部署到另一個伺服器。太棒了。強烈推薦。

當一切準備就緒時,將內容和程式碼推送到即時網站。

作為最後的警告:IP 限制您的開發站點,所以不是每個人都可以訪問它。

同步您的本地開發網站

顯然,如果您要在本地工作,您希望讓本地站點與開發和生產站點同步。所有的程式碼都將被版本控制,所以沒有問題。但是同步資料庫和靜態檔案是另一回事。

同步資料庫

這裡有兩個選擇。

  1. 您可以一次不間斷地將 SSH 登入到 dev 伺服器中,並將資料庫轉儲到可以下載並匯入到本地計算機的檔案中。使用上面的命令。

  2. 如果您的主機允許外部資料庫連線,請建立一個只能訪問您的開發站點資料庫的使用者。然後,您可以使用本地機器上的 mysqldump 命令指定主機引數,並將資料庫直接轉儲到計算機上 – 我使用 media temple 進行操作。

mysqldump 與宿主的例項。

shell$ mysqldump -p -u your_dbuser -h the-externa.db.host.com the_database > the-file.sql

您還可以登入到您的主機 PHPMyAdmin 並從那裡匯出。

同步靜態檔案 (上傳的影像等)

rsync 是你的朋友。它允許您從一個位置到另一個位置進行增量更新,包括透過 SSH 。換句話說,您可以使用它來僅下載您沒有本地機器的檔案。

例:

shell$ rsync -avze ssh your_user@yoursite.com:/path/to/static/files/ /path/to/your/local/static/files/

假設您的主機使用密碼進行 SSH 訪問,則在執行該命令後將提示您輸入密碼。如果你的主機不這樣做,例如使用無密碼的公鑰 SSH 訪問,您需要透過一些使用 ssh-agent 的 shell 指令碼跳過一些環:

#! /bin/bash

eval "$(ssh-agent)" # start ssh-agent user daemon
ssh-add /path/to/your/id_rsa # add your public key

rsync -avze ssh your_user@yoursite.com:/path/to/static/files/ /path/to/your/local/static/files/

kill $SSH_AGENT_PID # kill the ssh agent

您還可以使用 rsync 來保持生產和開發伺服器之間的靜態檔案同步。

以上是我如何與我的個人網站和幾個客戶的網站合作。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。