2016-07-17 42 views
0

我使用WindowsXAMPP當開發Web應用程序(與Laravel)。另外,我使用Git進行版本控制。當我完成一個項目時,我必須將其部署到VPS(LAMP)上。怎麼做?現在,兩個思路來我的腦海:如何在VPS上部署Laravel項目以及如何管理更改?

  1. SFTP - 例如,我會用MobaXterm的圖形SFTP瀏覽器,我只想複製我的項目(文件)...然後我會導入MySQL數據庫(或運行遷移)。

  2. 的Git/GitHub的 - 在我的VPS我安裝的Git,然後我會:

    • 創建GitHub上的遠程存儲庫
    • 混帳推((它應該是私有的?)從本地主機的GitHub)
    • ,然後,在VPS,我會做混帳克隆(從GitHub到VPS)
    • 最後,我只需要導入MySQL數據庫(或運行遷移)。

你以這種方式工作,或者有更好的解決方案嗎?我想第二種方法(Git/GitHub)比第一個(SFTP)更好,因爲如果我必須添加一些新功能或修復錯誤 - 我必須在服務器上執行的操作是:git pull(來自GitHub)。


編輯:

現在我看到有服務,如envoyer.ioforge,但它們不是免費的。那麼,我在我的問題中描述的第二種方法(2. Git/GitHub)有什麼缺點?這是免費的嗎?

回答

1

有很多工具可以幫助您部署Laravel或幾乎任何應用程序。

我以前用過https://deploybot.com/https://envoyer.io/

您還可以使用https://forge.laravel.com/來管理您的VPS並部署您的laravel應用程序。

+0

使用** envoyer.io **和我在我的問題中描述的第二種方法(2. ** Git/GitHub **)之間的區別是什麼,我的意思是使用** envoyer的優點是什麼。 io **而不是那種免費的方式? – PeraMika

+1

如果您在負載均衡器後面運行多個VPS服務器,則不必手動運行並在所有服務器上運行git pull。另外,如果你有一個團隊,你不希望他們只能部署VPS服務器。如果你可以使用命令行,你可以使用http://deployer.org/,它是完全免費的。 – vivek

+0

好的,但是如果我沒有在負載平​​衡器後面運行多個VPS服務器 - 那麼我在我的問題中描述的第二種方法(2. ** Git/GitHub **)是完全正確的,對吧?另外,如果我有一個團隊,當只有一個團隊成員(例如我)可以從GitHub進行部署(拉)時,爲什麼他們需要訪問VPS服務器,當添加了新功能或者有錯誤修復時...?我不明白他們爲什麼需要訪問VPS? – PeraMika

1

這個問題會吸引主要基於意見的答案,因爲每個人都喜歡以不同的方式工作。

最基本的和免費的方法是使用Git來做到這一點。這將爲您提供強大的版本控制,並允許您將您在本地開發中所做的所有更改推送到您的存儲庫,然後將其拖放到您的VPS。

您甚至可以在每次將更改推送或合併到主分支時設置webhook,以自動更新VPS上的版本。

通過SFTP做它可能會很慢,因爲它需要的過程,你失去了版本控制。這意味着如果你不小心打破了某些東西,那麼你不能輕易解開它。使用Git你可以回滾到之前的提交。

如果您想要製作私人回購協議並且不希望爲它們付款,那麼您可以考慮使用GitLab而不是GitHub。 GitLab允許您使用它們託管存儲庫,或者您可以在VPS上部署自己的GitLab實例,並將其託管到您的所有VPS。

儘管這裏有很多選項,最好的方法實際上就是您認爲合適的目的。