在没有Composer的情况下部署供应商

时间:2015-10-15 11:58:32

标签: symfony deployment build composer-php

我通常会在生产中使用简单的composer install部署我的供应商。

我不希望在制作中使用作曲家,因此我需要从我的机器构建供应商并将其部署到生产中。

我可以复制vendor目录,但我必须安装其他文件,例如app/bootstrap.cache.php或其他autoloader.php

2个问题:

  • 我可以安装/更新这些文件是什么?
  • 是否有任何已知的做法可以部署预先构建的供应商?

1 个答案:

答案 0 :(得分:2)

我会说程序非常简单(至少它对我有用):要部署你的应用程序,你要创建一个新目录,将代码从标签导出到它(即你不导出所有存储库管理数据,如.git目录)。然后运行composer install --no-dev,它将执行一些工作,并且还应运行composer.json文件中脚本中提到的任何内容。

这个以前空目录的结果以你喜欢的任何方式进入生产服务器,无论是SCP,SFTP,rsync ......这里没有真正的“魔法”,实际上它是复制文件。

您可能希望确保可以快速回滚,因此我建议将每个版本部署到指定目录中,然后将当前版本与符号链接相关联。例如:您已在/srv/www/htdocs/app-1.0中部署了旧版本,并将目录/srv/www/htdocs/app符号链接到此目录。 vhost使用通用app目录来为应用程序提供服务。

部署将创建一个新目录/srv/www/htdocs/app-1.1,并将其挂起将只删除旧的符号链接并为新目录创建一个新的符号链接。这应该会让您的新版本立即生效。回滚意味着删除符号链接并再次创建指向旧版本的符号链接。

YMMV,因为像缓存这样的东西会影响结果,但这不在使用Composer部署软件的方式和位置范围内。