猿问

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

我正在尝试通过 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 memory


mmap() failed: [12] Cannot allocate memory


Fatal error: Out of memory (allocated 809508864) (tried to allocate 4096

bytes) in phar:///opt/cpanel/composer/bin/composer/src/Composer

/DependencyResolver/RuleSetGenerator.php on line 126

任何人都对我可以做些什么来使事情正常工作有任何建议?


缥缈止盈
浏览 201回答 1
1回答

牧羊人nacy

您没有遇到 PHP 内存限制。如果出现这种情况,错误消息将类似于“已用尽 N 字节的允许内存大小”。失败的mmap调用表明您的物理内存不足。升级主机或在另一台具有更多内存的机器上执行依赖项更新。这样做将 composer.json 和 composer.lock 复制到内存充足的机器上composer require amasty/advanced-review --no-scripts --ignore-platform-reqs在那台机器上运行将更新的 composer.json 和 composer.lock 文件复制回 Bluehost 机器composer install在 Bluehost 机器上运行这是有效的,因为composer install不做任何复杂的依赖解析,因此需要很少的内存。
随时随地看视频慕课网APP
我要回答