composer copy 包和 composer 安装包问题

分享 baocaixiong ⋅ 于 3年前 ⋅ 最后回复由 lijinma 3年前 ⋅ 5067 阅读

服务器内存比较小,用composer update安装的时候粗现了proc_open(): fork failed - Cannot allocate memory的问题,将memery_limit改到了400M也不行。 所以就想从本地打包上传到服务器上面解压使用。 此时的情况是: composer.json文件中包含这个包,composer update升级失败。将包拷贝到vendor目录后运行 composer dump-autoload,并且将Provieder加入到了app.php打开页面还是报错找不到整个包。

那么问题来了:

  1. 内存不够了除了加内存,或者加swap之外是不是别无他法?
  2. 为什么composer吃这么大内存?
  3. 为什么正确拷贝到vendor目录并且运行composer dump-autoload还是不能找到包,如果我的方式是错误的,那么怎么样操作才是正确地呢?
  4. 暂时没有了。
成为第一个点赞的人吧 :bowtie:
回复数量: 8
  • lijinma 就喜欢折腾。 1
    3年前

    你们那边都在服务器上 composer 安装吗?

    我分享下我这边 deploy 的方法:

    (1)一种是在本地都composer install 好,然后打包成 phar,然后部署到服务器。

    (2)另外一种(现在在用):在本地 composer install 好后,提交 git(所有内容,包括 vender),然后在服务器拉 repo,这种方法就是完全建立了一个发布文件的 repo,和开发的 repo没有任何关系。

    你问的问题我不知道 :grin:

  • blue5tar
    3年前
    1. composer require "xxxx/xxxx"
    2. 同楼上 再有一台发布机器 composer install 好 再同步到服务器 不能composer update
  • blue5tar
    3年前

    或者 composer require "xxxx/xxxx" --prefer-dist

  • fasthold
    3年前

    能加swap就加吧,毕竟也算是简单的解决方法

    sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
    sudo /sbin/mkswap /var/swap.1
    sudo /sbin/swapon /var/swap.1
  • baocaixiong
    3年前

    @lijinma 你说的第一种解决方法是将整个项目都打包成一个phar文件,然后部署嘛?这方面的知识还真是接触的少,能不能提供一个以你所知的比较好的文档让我见识见识喵。 第二种现在有个问题,就是现在有一个版本已经在线上运行了,而新版本里面添加了不少新包,此时喝后悔药想将vendor目录的所有文件都重新放到git版本库里面去,不晓得会有神马问题。

  • lijinma 就喜欢折腾。
    3年前

    @baocaixiong 第一种方法我暂时没找到很好的文档,抱歉。 现在不建议使用,因为如果版本太大的话,每次要全部拷贝一遍,成本比较搞,而使用第二种方法就比较效率。

    第二种方法:按你现在的情况,完全可以使用第二种方法(可能你没明白我第二种方法),你需要增加的是一个发布版本的 repo,这个 repo 不会 ignore vendor,不会 ignore js 或 css 编译后的文件。

    这个 repo 和你版本的 repo 没有关系,是一个全新的 repo。

  • baocaixiong
    3年前

    @lijinma 昨天我是直接修改的现有的版本库。 你那边维护两个版本库是如何操作的啊

  • lijinma 就喜欢折腾。
    3年前

    @baocaixiong 这个我感觉很好操作啊。。

    发布版本的库只有在发布版本的时候使用。

    我这边是使用脚本自动提交的,所以每次发布版本只需要提供项目版本最后的 sha1就可以。

暂无评论~~

  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!