如果无法在生产服务器上安装Composer,是否可以在Git中跟踪供应商文件夹?

时间:2017-01-24 10:25:34

标签: php git laravel composer-php

据我了解,对于使用Composer的任何项目,部署到生产服务器的正确方法是不跟踪Git中的vendor文件夹,而是在生产服务器上运行Composer并让它获取所有必要的包并为您填充vendor文件夹。 首先,我说得对吗? (这可能听起来像个愚蠢的问题,但没有人明确向我说明这一点)

其次,我的生产服务器是一个廉价的共享托管环境,而不是一个闪亮昂贵的AWS或数字海洋盒,所以我无法在生产环境中安装Composer。尽管我喜欢用理想的方式做事,但我无法做到。这是跟踪Git中vendor文件夹并以这种方式部署软件包的下一个最佳选择。那么在将来,如果我更灵活地升级到托管包,我可以停止跟踪vendor文件夹并开始理想的方式吗?

2 个答案:

答案 0 :(得分:2)

您对如何使用供应商地图的理解是正确的。

对于你的第二个问题,我只会选择你的解决方案作为最后的手段;它远非理想。您的存储库需要不断更新第三方更改。

在你的情况下,我更愿意:

  1. 在本地安装php,composer和git。这可以在Windows,OSX和Linux中使用。
  2. 在本地镜像您的网站,并在那里执行作曲家更新。
  3. 通过FTP(或您使用的任何内容)将更新复制到您的生产站点。
  4. 这使您的存储库保持紧凑和可管理。您只需要将自己的更改提交到存储库。

    如果在将来的任何时候,您可以在服务器上运行git,您可以继续使用存储库,而无需清除整个供应商地图。

答案 1 :(得分:-1)

是的,这就是人们通常使用作曲家的方式。

如果您在此服务器上拥有shell访问权限,则可以轻松使用composer。只需在repo中包含composer.phar,然后就可以在共享服务器上运行php composer.phar install

您可以从他们的网站(https://getcomposer.org/download/)获取最新作曲家。

如果您没有shell访问权限,那么您可以将供应商置于git中,但我宁愿通过FTP手动复制供应商,而不是将其存储在git中。 我假设,因为你在服务器端使用git,你有shell访问权限,而事实并非如此;)