2016-01-02 84 views
1

我有許多PHP網站在不同的服務器(雲中的LAMP服務器)。他們是來自不同客戶的不同網站,但我在其中使用了一些通用代碼。所有這些共同的代碼我放在一個Common_Code_Folder,我與類,控制器函數庫使用等如何在多個網站/服務器上共享PHP代碼?

的結構是這樣的:

Server 1 
> Common_Code_Folder 
> Root_Folder 
    > Code Website 1 

Server 2 
> Common_Code_Folder 
> Root_Folder 
    > Code Website 2 

Server 3 
> Common_Code_Folder 
> Root_Folder 
    > Code Website 3 

等...

當我在Common_Code文件夾中更改任何內容時,我正在尋找更智能的解決方案來部署此解決方案。

我現在做什麼:

當我改變Common_Code文件夾內的任何文件,我需要在FTP連接所有的網站,並上傳common_code文件夾中所有的人。如果我有15個網站,我需要做15次!

有沒有辦法讓它自動化?也許GIT?也許是部署代碼?

+1

當然,一個典型的場景是使用'git'或任何其他版本控制系統。你只需從存儲庫中取出,這可以自動完成,也許'cron'基於,或通過一些管理調用。 – arkascha

+0

@arkascha在正確的軌道上。使用git submodules:http://www.lornajane.net/posts/2014/git-submodules-for-dependent-or-common-code – crafter

回答

1

要同步的代碼,我建議:

  • 將代碼放在Common_Code_Folder到Git倉庫。
  • 使用腳本來部署新的版本拉新代碼(git pull
  • 該腳本可以手動執行按需或由cron

如果你的代碼可以訪問數據庫,腳本(如PHP腳本)也應

  • 檢查數據庫更改
  • 應用數據庫遷移

然後,即使數據庫發生更改,您的自動部署過程也可以安全地運行。

由於此通用代碼是您自定義PHP代碼的庫,您還可以通過composer進行更新。然後你的通用代碼被安裝在目錄vendor中。這是常見的做法,例如在Yii2框架中。

+0

謝謝。我正在使用GIT,它正在工作。我只需要提交併推送更改,而我的服務器(Jelastic)則會提取所有更新。 – user160

相關問題