我是Laravel,Laravel Homestead,Composer以及与将更改提交到Git存储库然后将这些更改拉到开发/生产服务器相关的开发工作流程的新手。 到目前为止,经过多次试验和错误,我已经设法:
- 与流浪者一起建立我当地的家园环境。
- 创建新的 Laravel 应用程序
- 运行编辑器以获取依赖项
- 在本地访问应用程序。
- 为我的应用程序创建 Git 存储库,提交更改,然后推送到源主分支。
- 在我的远程服务器(1和1上的共享主机)上克隆存储库并拉入更改。
很长一段时间,我不明白为什么当我将更改拉到远程站点时,我会收到PHP错误,但本地站点运行良好。 归根结底,Laravel .gitignore 文件忽略了 /vendor 目录,而 Laravel 需要该目录才能运行。 一些Google-fu搜索表明,有些人只是在他们的生产服务器上运行composer update
/(composer install
?)。 (我无法访问共享主机服务器上的 Composer,因此无法执行此操作)
我向社区提出的问题 - 您认为适合我给定情况的最佳工作流程是什么? 从 .gitignore 文件中删除 /vendor 目录? 别的?
非常感谢您的回复。
看起来您正在使用 GIT 作为部署工具,我认为这不是一个好主意。
作曲家更新/安装仅用于管理依赖项。某些服务器不允许您从控制台运行脚本,或者运行它们很复杂。在这种情况下,您可以在部署之前在本地运行 composer,并将代码发送到包含所有依赖项的服务器。
以下是设计工作流时应牢记的一些事项:
- 使用 GIT 保留源代码和配置
- 使用编辑器管理依赖项(下载的依赖项不应在 GIT 存储库中进行版本控制。供应商目录及其连接也是一个依赖项) 对于部署,
- 请使用部署工具之一,例如 https://github.com/rocketeers/rocketeer
使用 -f
标志在使用 git add
时强制包含供应商目录。
你在这里走在正确的轨道上,许多人会做你正在做的事情。
当您进行多个服务器部署(负载平衡、自动扩展)时,真正的麻烦就来了。
通常,我所看到的是一个 shell 脚本,只要发生需要运行这些命令的事情,您就会包含并运行该脚本。
此 shell 脚本内部是您希望在每次启动新服务器实例时完成的命令。
您也可以使用适用于单个服务器环境的多种工具执行此操作。
我可能会研究像Travis CI,Jenkins等持续集成工具。如果这是你的一个主要头痛。
否则,可能会矫枉过正。然后继续做你正在做的事情。
将供应商目录添加到 Git 存储库违反最佳实践。
这也是一个涉及网络钩子的不错选择:http://losstopschade.de/post/96967373358
查看将 Laravel Webapp 部署到 1and1