2016-07-17 77 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。

尽管这里有很多选项,最好的方法实际上就是您认为合适的目的。