2015-11-12 67 views
0

我試圖用Github和Laravel 5執行連續部署。 我想在我的Git,development,QA和master中創建3個分支 在每個分支中的推送將部署在一個不同的服務器,即AWS Amazon EC2的所有實例。部署基於laravel的Git代碼

事情是我不知道如何管理.env文件。 對於那些3臺服務器,這個文件應該是不同的。 此外,這個文件是.gitignore的一部分,所以它不會被部署。 那麼我應該怎麼做來管理這部分?

回答

0

解決方案將設置服務器中的全局變量$ _ENV到每個環境!

1

第一次設置您的主機時,將相應的分支克隆到您的服務器中。然後你手動寫入.env文件。

當你的服務器在之後克隆修訂版時,你的.env會保持原樣,因爲它是gitignore的。

這就是第一次使用.env的要點:通過獨立於版本的安裝來設置配置。

如果您仍然希望使版本化代碼的.env部分仍然保留在存儲庫中,但我建議使用env變量來存儲該數據。

要從.env文件使用env變量,請在.env文件中使用YOUR_CONF={$YOUR_ENV_VAR}。確保您的服務器env上已設置YOUR_ENV_VAR。

希望現在更清楚。

另外在一個側面說明,也許你應該考慮使用PhpCi安裝來幫助你達到目的。

+0

那麼這就是所有的要點。我使用Continuous Deployement,並且我總是部署一個完整的項目克隆,所以我永遠都不會擁有.env。 –

+0

這不是它應該如何工作。正如文檔所述,laravel的.env必須在不同的部署中保持一致(它是服務器特定的)。 另一種方法是設置服務器env變量並使用它們來保存您的數據。 但是你仍然需要一個.env(但它可以被版本化,因爲所有憑證都可以移動到env變量)。 – Atrakeur

+0

確切的說,我將使用一個沒有數據的標準.env,並將其與服務器變量關聯 –