2011-09-28 80 views
1

我一直通過Coda或類似的FTP連接在網站上實時編輯代碼,但是我剛剛爲用戶註冊等編寫了我的第一個PHP Web應用程序,我非常警惕,我需要一個比「實時編輯」更好的計劃。我在共享主機上,所以我認爲像SVN和GIT這樣的東西可能已經出來了,但是有沒有任何軟件/腳本/解決方案可以讓我將代碼直接推送到Web服務器,並在我的Mac上擁有主副本。將CakePHP網絡應用部署到共享主機上的最佳選擇

什麼是人們對網絡應用/部署和共享主機的體驗?

回答

3

我寫我自己的部署系統,以避免上實時編輯。

它可以運行在不同的階段 - 他們是:

  1. SVN從本地倉庫出口(這意味着你沒有得到的.svn目錄的負載)
  2. rsync的出口代碼住服務器 - 但在 - 慢跑模式,這樣你就可以看到實際上將要生活的東西。此命令上有一些不包括:在正常模式 - 排除應用程序/ tmp目錄
  3. rsync的

我已經把

  • 因爲我運行在多個代碼中的一些花絮。負載平衡器後面的web服務器,我排除了core.php和database.php。然後,我將每個Web服務器上的這些文件鏈接到可集中訪問的NFS上。
  • 實時運行的rsync,但它只上傳一次(到NFS)。部署腳本然後在遠程服務器上運行一個命令(通過ssh)來啓動NFS和Web服務器之間的rsync。這是一個bash腳本,意味着我可以輕鬆管理網絡節點以及如何將文件推出。

希望有幫助!

2

我使用我寫的cakephp shell工具 - 它使用「rsynch」並只上傳delta(到目前爲止所做的更改)。 帶有這樣一個rsync腳本,它可以快速上傳更改後的文件。只有1-2秒的時間。

與另一個項目我必須承諾一切,並手動「svn更新」服務器所有的時間。非常討厭+你甚至需要承諾「測試階段」。

因此畢竟我建議使用上面的增量上傳。 確保你不要上傳任何tmp的東西,甚至更糟糕的是,重寫基於環境的文件,如上傳,緩存的文件等。 使用像rsynch這樣的批處理腳本通常可以排除一些目錄。

我的示例配置是

server  xxx 
username xxx 
password xxx 
local  C:\...\app\ 
remote  /var/www/site 
protocol ftp 
permissions ignore 
state  timesize 
exclude  _* 
exclude  *__* 
exclude  *~* 
exclude  .svn 
exclude  .git 
exclude  /tmp 
exclude  /files/uploads/* 
exclude  /webroot/files/tmp 
exclude  /webroot/img/content/*