我有一些PHP個人項目共享託管;這裏有幾個想法,從我正在做的其中一個(最活躍的一個,需要一些至少半自動化的同步方式):
有關我的設置:
- 前段時間,我把所有東西都放在SVN上;現在,我正在使用bazaar;但這個想法是完全一樣的(除了與商場,我有當地的歷史和所有)
- 我必須到生產服務器的SSH訪問,像你這樣
- 我工作在Linux上exclusivly (所以,我做什麼,可能無法與Windows一樣容易)
現在,我是如何工作的:有
- 一切TE是生產服務器(源代碼,圖像上,.. )將提交給SVN/bazarr /不管
- 我在本地工作,與Apache/PHP/MySQL的(我用的是生產DB的轉儲,我在一段時間導入本地一次)
- 只有我一個在這個項目上工作;對於2/3開發人員的小團隊來說,這可能是可以的,但不會更多。
我所做之前:
- 我有這樣的檢查SVN服務器之間進行一些修改PHP腳本「最後一次修訂推到生產」和HEAD
- 我猜這自制PHP腳本看起來像您當前使用的Perl腳本^^
- 該腳本構建了要上傳到生產的目錄/文件列表
- 並通過FTP上傳這些訪問
- 這不是很令人滿意(我的腳本中有錯誤,我從來沒有花時間去糾正這些);並強迫我記得我最後一次推送到生產時間的版本號(當然,它會自動存儲在由腳本文件,所以並不難^^)
我現在在做什麼:
- 當切換到商場,我不想重寫劇本,這不我已經放棄了腳本完全
- 當我有到生產服務器ssh訪問工作得很好反正
- ,我使用rsync進行同步從我的開發機到生產服務器,當我已在本地被認爲是穩定/生產就緒。
有關的做的事情,這樣對夫婦的注意事項:
- 我沒有中間服務器:我的本地設置是足夠接近生產不是有一個
- 臨時服務器爲一個或兩個developpers
- 如果我有一個臨時服務器一個簡單的項目好,我可能會一起去:
- 當你想要做的STA上有一個「SVN更新」 GE
- ,如果是OK,啓動從臨時服務器的rsync命令(其將在最新的「穩定」修訂BA,這樣可以被推到生產)
- 一個比較大的項目,更開發人員,我可能不會去那種設置;但我覺得這對一個(不太大)的人際項目來說確實很不錯。
這裏唯一的「特殊」,可能是「面向Linux」使用rsync;快速搜索似乎表明有一個可以在Windows上安裝了rsync的可執行文件:http://www.itefix.no/i2/node/10650
我從來沒有嘗試過,但。
一點題外話,這裏就是我的rsync命令看起來像:
rsync --checksum \
--ignore-times \
--human-readable \
--progress \
--itemize-changes \
--archive \
--recursive \
--update \
--verbose \
--executability \
--delay-updates \
--compress --skip-compress=gz/zip/z/rpm/deb/iso/bz2/t[gb]z/7z/mp[34]/mov/avi/ogg/jpg/jpeg/png/gif \
--exclude-from=/SOME_LOCAL_PATH/ignore-rsync.txt \
/LOCAL_PATH/ \
[email protected]:/REMOTE_PATH/
我使用私有/公共密鑰mecanism,所以rsync的不要求輸入密碼,順便說一句。
,當然,我一般在「幹運行」模式下使用相同的命令第一,看什麼將要synchorised,還可以選擇「--dry-run
」
而且ignore-rsync.txt
包含的列表我不希望文件推送到生產:
.svn
cache/cbfeed/*
cache/cbtpl/*
cache/dcstaticcache/*
cache/delicious.cache.html
cache/versions/*
在這裏,我只是防止緩存目錄被推到生產 - 似乎是合乎邏輯不發送這些,因爲生產數據是不一樣的發展數據。
(我只注意到有仍然是「.svn
」在這個文件......我可以去掉它,因爲我不使用SVN了該項目^^)
希望這有助於有點...
非常感謝。有時候,像你這樣的努力讓我感到驚訝,並以這樣的細節和清晰度給出答案。 – zenna 2009-08-15 14:17:30
不客氣:-)(我得到的一些答案和/或看到我感到驚訝;-)所以,當我可以幫助...嗯,這就是爲什麼! ) – 2009-08-15 14:25:41