如何在远程服务器上管理 laravel 4
Posted
技术标签:
【中文标题】如何在远程服务器上管理 laravel 4【英文标题】:How to manage laravel 4 on remote server 【发布时间】:2013-11-30 22:47:19 【问题描述】:我的机器上有我的本地 git repo,并安装了 composer 和所有这些。然后我有一个远程服务器来托管我的网站,我有一个裸仓库,它有一个 post-receive 挂钩,可以检查 var/www/ 文件 (GIT_WORK_TREE=/var/www/ git checkout -f)。
现在,当我使用 codeigniter 或其他非基于 composer 的网站时,它就像提交更改并将其推送到服务器一样简单。由于这是我第一次接触作曲家,我有些头疼。
如何在远程服务器上设置 laravel 4,以便我可以推送更改?我需要安装作曲家吗?如果我需要更新我的 composer.json,我还需要在服务器上执行“composer dump-autoload”还是“composer update”?基本上,是否有关于如何管理工作流程的快速纲要或教程?
如果我有简单的“git commit && push”,我会非常喜欢它,它会在服务器上为我做所有事情,包括所有作曲家的东西。
谢谢!
【问题讨论】:
查看默认的 .gitignore。您将需要远程服务器上的作曲家。更新 composer.json 后,我在本地和远程安装上运行 composer update。 我看到它不包括 vendor/。这是为什么?我不应该能够从我的 .gitignore 中删除它并手动更新供应商吗? 对不起,我的确实包括 vendor/。我认为您只想手动更新供应商。 【参考方案1】:如何实现这一点取决于您的主机。您需要一定级别的访问权限才能从 Git 自动部署。一些公司,例如 Heroku 和 FortRabbit,已经内置了这个功能。如果您的主机没有,这里有一些关于如何实现它的说明:
1。从 .gitignore 中删除 composer.lock
这是在 .gitignore
文件中,因为 Laravel 的创建者不希望它在存储库中。但是,您应该在版本控制中包含它,因为它是您的生产服务器在更新生产服务器上的依赖项时应该读取的内容。
当您从 git 更新您的服务器时,您也应该在其中更新 composer.lock
文件。
2。从您的 Git 存储库设置自动部署。
执行此操作的步骤通常是:
-
设置Github web hooks(是的,我假设是 Github。您需要一种方法向您的服务器发送请求,让它知道您的存储库已更新)
让您的服务器监听网络挂钩
让您的服务器通过从 git 中提取最新信息来响应 web hook
这些在这篇关于deploying from github using webhooks and nodejs的文章中有详细的概述
3。部署后脚本
从 Github 获得最新代码后,您可能更新了在您的 composer.json
文件中定义的依赖项(并在您的 composer.lock
文件中设置)。下面是关于why you use composer.lock
in production 和composer install
命令的一点解释。 (composer update
适合开发,composer install
适合生产)。
在从 Git 中提取最新更改后,您可以运行(可能从告诉 git 提取最新生产的同一脚本)运行 composer install
。
【讨论】:
谢谢!我会稍微调查一下你的答案,然后我会标记为正确!以上是关于如何在远程服务器上管理 laravel 4的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 artisan 的情况下在远程 ubuntu 服务器上连接 Laravel 7.12 项目的数据库