更快的作曲家安装



一个作曲家的安装通常需要几分钟。在生产环境中,感觉太慢了。 是否可以将作曲家安装到临时目录,然后切换它?如果可能的话,停机时间应该大约为零。

或者有没有其他方法可以更快地完成作曲家安装?

我创建了一个作曲家插件来并行下载包。
https://packagist.org/packages/hirak/prestissimo

$ 作曲家全球需要 hirak/prestissimo

请尝试一下。在我的环境中,composer install变得快 10 倍。

有时可以使用--prefer-dist标志显著加快composer install速度,恰好建议将其用于生产用途:

--

prefer-dist:与--prefer-source相反,如果可能的话,作曲家将从dist安装。这可以大大加快构建服务器上的安装速度,以及您通常不运行供应商更新的其他用例。

composer install文档在这里: http://getcomposer.org/doc/03-cli.md#install

编辑以澄清有时

我说它有时会加快composer install,因为有很多因素会让它感觉很慢,其中最重要的是网络性能和当前的 Github 状态。 缓慢的安装可能真的很令人沮丧,但它并不总是作曲家的b/c。

你在问两件不同且不相关的事情。

是的,这是一种解决方案,可以在单独的目录中构建站点的下一个版本,然后在将旧版本移开后将其放置到位。实际上,这是最好的解决方案。

以下是我构建的部署脚本的工作方式:

  1. 在单独的目录中准备站点的下一个版本(假设/var/www/new);以下项目列表及其顺序不是静态的,某些项目需要不同的流程:
    • 从存储库中获取代码的最新版本;
    • 删除活动站点上不需要的文件(.gitignore、IDE 项目文件、占位符等);
    • 运行composer install;
    • 复制/生成包含实时服务器设置的配置文件(存储在存储库中的配置文件包含虚拟值);
    • 更改所有文件的用户和权限; 使一些目录可由Web服务器写入;
    • 创建符号链接
    • 、目录等;例如,包含用户上传文件的目录位于服务器目录之外的某个位置,并且在部署期间创建指向它的符号链接,以使其内容通过 Web 服务器可用;
  2. 将实时代码移开;我使用mv移动整个目录(例如/var/www/html移动到/var/www/old);
  3. 将准备好的新版本移动到正确的位置(mv /var/www/new /var/www/html);
  4. 将以前的版本移动到存档中(在我删除vendor和其他未更改或外部文件的内容之后)。

优点:

  • 停机时间为零(可能在步骤 #2 和 #3 之间为微秒);
  • 失败的构建不会影响活动站点(如果处理得当);
  • 恢复
  • 到以前的版本(如果需要)可以轻松完成。

关于另一个问题,我知道加快composer的唯一方法是避免使用加载xdebug扩展的 PHP 运行它。无论如何,不应在生产服务器上加载xdebug扩展。

相关内容

  • 没有找到相关文章

最新更新