Composer php Can';t更新编写器

Composer php Can';t更新编写器,composer-php,Composer Php,这是我在远程服务器上运行composer update时遇到的错误: 我已尝试将内存限制提高到1G。那不行 我确实有交换(所以我不知道为什么错误会说我没有交换) 我真的不知道还能尝试什么 如果有人有任何建议,我当然会非常感激。内存为“495M”表明VPS盒很便宜。 我想你是想在一个制作盒上运行Composer。 您正在更新包,包括开发包:requiredev (A) 我怀疑您是否想在一台机器上进行开发,这是如此苛刻的限制,但无论如何,这里有一些提示: 通过定义精确的版本来减少Composer

这是我在远程服务器上运行
composer update
时遇到的错误:

我已尝试将内存限制提高到1G。那不行

我确实有交换(所以我不知道为什么错误会说我没有交换)

我真的不知道还能尝试什么

如果有人有任何建议,我当然会非常感激。

内存为“495M”表明VPS盒很便宜。 我想你是想在一个制作盒上运行Composer。 您正在更新包,包括开发包:
requiredev

(A) 我怀疑您是否想在一台机器上进行开发,这是如此苛刻的限制,但无论如何,这里有一些提示:

  • 通过定义精确的版本来减少Composer解算器的工作负载,而不是依赖其他操作符,如tilde
    ~
    或通配符
    *
    。例如:当存在
    1.2.3
    时,不要使用
    1.2.*
    ~1.2
  • 跳过安装require dev
    composer update--no dev
    中列出的软件包,您不需要在生产框中安装它们
  • 在详细模式下执行composer,以了解需要多少内存;)
但当它仍然不起作用时,不要感到惊讶

(B) 要真正解决这个问题,您可以在开发机器上正确地打包您的项目。只需在dev计算机上运行
composer安装--no dev
composer更新--no dev
,打包项目文件夹,然后将其部署到生产环境中(复制文件、提取)

(C) 在本地运行
update
,将
composer.lock
文件推送到Github,然后将其拉到生产服务器上,然后运行
install
。通过这样做,将使用锁文件中已解析的版本,从而降低工作和内存使用

简言之:

  • 在dev box上构建一个发行版,然后部署到生产环境
  • 这样可以避免在具有约束的机器上执行Composer

~4.1.*
是无效的版本约束。应该是
~4.1
4.1.*
谢谢。在本地运行
update
,将composer.lock文件推送到Github,然后将其拉到服务器上,然后运行
install
就成功了:)
             total       used       free     shared    buffers     cached
Mem:           495        247        248          0         12         48
-/+ buffers/cache:        187        308
Swap:         1023        204        819