无法更新Composer

时间:2015-09-03 02:26:27

标签: composer-php

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

enter image description here 我试过将memory_limit提高到1G。这不起作用。

我确实有交换(所以我不确定为什么错误说我没有)。

             total       used       free     shared    buffers     cached
Mem:           495        247        248          0         12         48
-/+ buffers/cache:        187        308
Swap:         1023        204        819

我真的不确定还有什么可以尝试...

如果有人有任何建议我肯定会感激。

1 个答案:

答案 0 :(得分:1)

" 495M"是一个便宜的VPS盒子的指标。 我想你正试图在生产盒上运行Composer。 您正在更新包,包括开发包:require-dev

(A)我怀疑你是否想在机器上进行开发,这种严格的限制,但无论如何,这里有一些指示:

  • 通过定义确切版本来减少Composer解算器的工作量,而不是依赖于其他运算符,例如代字号~或通配符*。例如:如果有1.2.*,请不要使用~1.21.2.3
  • 跳过安装在require-dev composer update --no-dev中列出的软件包,在生产箱上不需要它们
  • 以详细模式执行编写器,找出你需要多少内存;)

但是当它仍然无法工作时,不要感到惊讶。

(B)要真正解决问题,您可以在开发机器上正确打包项目。只需在开发计算机上运行composer install --no-devcomposer update --no-dev并打包项目文件夹,然后将其部署到生产环境(复制文件,提取)。

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

简而言之:

  • 在开发框上构建一个版本,然后部署到生产
  • 这可以避免在具有约束的计算机上执行Composer