为了账号安全,请及时绑定邮箱和手机立即绑定

Composer 内存不足 - 需要替代方法来增加 PHP memory_limit

Composer 内存不足 - 需要替代方法来增加 PHP memory_limit

PHP
缥缈止盈 2021-10-15 16:12:59
我正在尝试通过 Composer 在客户端的 Magento 2 上安装扩展,但我遇到了旧的 PHP 内存不足错误。我的客户端由 Bluehost 托管,不幸的是,这意味着我不能直接更改 php.ini 中的 memory_limit,因为它是只读的,而且他们的 cPanel MultiPHP INI 编辑器不会影响 SSH。我的客户一直与 Bluehost 联系,他们被告知 Bluehost 不允许更改 SSH memory_limit,但是,我的客户最近才不得不安装不同的扩展,这需要增加 memory_limit,但他们自己做了他们不记得他们使用了什么命令或他们编辑的文件。我可以确认 Composer 已正确安装在服务器上,因为我可以运行命令composer require path/to/extension. 这只会导致内存不足错误。运行命令会COMPOSER_MEMORY_LIMIT=-1 composer require amasty/advanced-review导致相同的错误:mmap() failed: [12] Cannot allocate memorymmap() failed: [12] Cannot allocate memoryFatal error: Out of memory (allocated 809508864) (tried to allocate 4096bytes) in phar:///opt/cpanel/composer/bin/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 126任何人都对我可以做些什么来使事情正常工作有任何建议?
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您没有遇到 PHP 内存限制。如果出现这种情况,错误消息将类似于“已用尽 N 字节的允许内存大小”。失败的mmap调用表明您的物理内存不足。

升级主机或在另一台具有更多内存的机器上执行依赖项更新。这样做

  1. 将 composer.json 和 composer.lock 复制到内存充足的机器上

  2. composer require amasty/advanced-review --no-scripts --ignore-platform-reqs在那台机器上运行

  3. 将更新的 composer.json 和 composer.lock 文件复制回 Bluehost 机器

  4. composer install在 Bluehost 机器上运行

这是有效的,因为composer install不做任何复杂的依赖解析,因此需要很少的内存。


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 200 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信