如何在 VPS 上部署 Laravel 项目以及如何管理更改?
Posted
技术标签:
【中文标题】如何在 VPS 上部署 Laravel 项目以及如何管理更改?【英文标题】:How to Deploy Laravel project on VPS and How to manage changes? 【发布时间】:2016-11-19 21:17:41 【问题描述】:在开发 Web 应用程序(使用 Laravel)时,我使用 Windows 和 XAMPP。另外,我使用 Git 进行版本控制。当我完成一个项目时,我必须将它部署在 VPS (LAMP) 上。怎么做?目前,我想到了两个想法:
SFTP - 例如,我会使用 MobaXterm 的图形 SFTP 浏览器,我会复制我的项目(文件)...然后我会导入mysql 数据库(或运行迁移)。
Git/GitHub - 我会在我的 VPS 上安装 Git,然后我会:
在 GitHub 上创建一个远程存储库(应该是私有的吗?) git push(从本地主机到 GitHub) 然后,在 VPS 上,我会执行 git clone(从 GitHub 到 VPS) 最后,我只需要导入 MySQL 数据库(或运行迁移)。您是这样工作的,还是有更好的解决方案?我认为第二种方式(Git/GitHub)比第一种方式(SFTP)更好,因为如果我必须添加一些新功能或修复错误 - 我将拥有在服务器上要做的是:git pull(来自 GitHub)。
编辑:
现在看到有envoyer.io、forge等服务,但不是免费的。那么,我在问题中描述的第二种方式(2. Git/GitHub )有什么缺点,它是免费的?
【问题讨论】:
【参考方案1】:有很多工具可以帮助您部署 Laravel 或几乎任何应用程序。
我过去使用过https://deploybot.com/ 和https://envoyer.io/。
您也可以使用https://forge.laravel.com/ 来管理您的 VPS 并部署您的 laravel 应用程序。
【讨论】:
使用 envoyer.io 和我在问题中描述的第二种方式(2. Git/GitHub)有什么区别,我意思是使用 envoyer.io 而不是那种免费的方式有什么好处? 如果您在负载均衡器后面运行多个 VPS 服务器,则无需手动在所有服务器上运行 git pull。此外,如果您有一个团队,您不希望他们访问 VPS 服务器只是为了部署。如果你使用命令行没问题,你可以使用完全免费的deployer.org。 好的,但是如果我没有在负载均衡器后面运行多个 VPS 服务器 - 那么我在问题中描述的第二种方式(2. Git/GitHub)完全没问题,对吧?另外,如果我有一个团队,当团队中只有一个人(例如我)可以在添加新功能或修复错误时从 GitHub 进行部署(拉取)时,为什么他们需要访问 VPS 服务器... ?我不明白他们为什么需要访问 VPS? 是的,只使用 git/github 进行部署就可以了。如果您不在并且有人需要部署代码,您必须提供服务器访问权限才能部署代码。这就是我赋予团队访问权限的意思。【参考方案2】:这个问题将主要吸引基于意见的答案,因为每个人都喜欢以不同的方式工作。
最基本的、免费的方法是使用 Git 来完成。这将为您提供强大的版本控制,并允许您将在本地开发中所做的所有更改推送到您的存储库,然后将它们拉到您的 VPS。
您甚至可以设置 webhook 以在每次将更改推送或合并到主分支时自动更新 VPS 上的版本。
由于需要处理的过程,通过 SFTP 执行此操作可能会非常缓慢,并且您会失去版本控制。这意味着如果您不小心弄坏了某些东西,那么您将无法轻松撤消它。使用 Git,您可以回滚到之前的提交。
如果您想要创建私人仓库并且不想为它们付费,那么您可以考虑使用 GitLab 而不是 GitHub。 GitLab 允许您使用它们托管存储库,或者您可以在您的 VPS 上部署自己的 GitLab 实例并将其托管在您的所有 VPS 中。
这里有很多选择,最好的方法就是你认为适合目的的方法。
【讨论】:
以上是关于如何在 VPS 上部署 Laravel 项目以及如何管理更改?的主要内容,如果未能解决你的问题,请参考以下文章
使用 BitBucket Pipelines 通过 SSH 访问部署到 VPS
我如何在我的 nuxt vps 上使用 laravel csrf 令牌