当前位置: 首页 > 知识库问答 >
问题:

PHP编写器更新“无法分配内存”错误(使用Laravel 4)

端木弘方
2023-03-14

我就是解决不了这个问题。

我在Linode 1G RAM的基本计划。试图通过Composer安装一个包,它不让我。我的内存限制设置为"-1"在PHP. ini

我还能做些什么来安装这个吗?

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing thujohn/rss (dev-master df80a7d)
    Downloading: 100%         
PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975

Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975

共有3个答案

仉梓
2023-03-14

有点老了,但只是为了防止有新的人正在寻找解决方案,更新您的PHP版本可以解决这个问题。

此外,您还应该提交composer.lock文件,并在资源密集度较低的生产环境中安装composer。

更多细节:https://github.com/composer/composer/issues/1898#issuecomment-23453850

徐飞龙
2023-03-14

作为作曲家故障排除指南,此处可能会发生这种情况,因为VPS运行内存溢出,并且没有启用交换空间。

free -m

要启用交换,您可以使用以下选项,例如:

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

或者,如果上述操作不起作用,则可以尝试创建交换文件

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
堵飞鸿
2023-03-14

看来你的交换内存用完了试试这个

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

正如@BlackBurn027在下面的评论中提到的,这个解决方案在这里进行了描述

 类似资料:
  • 问题内容: 我只是无法解决这个问题。 我正在使用Linode 1G RAM基本计划。试图通过Composer安装软件包,但并没有让我这么做。我的内存限制在PHP.ini上设置为“ -1” 我还能做些什么来安装此软件吗? 问题答案: 有点老了,但是以防万一有新人正在寻找解决方案,更新您的PHP版本可以解决此问题。 另外,您应该提交composer.lock文件,并在资源占用较少的生产环境中进行com

  • 问题内容: 我刚从python移植了我的应用程序,所以Go有点新。看来我遇到了记忆问题。 它在ubuntu机器上运行。通过主管。 编辑: 设置解决问题 问题答案: 对于遇到此问题的其他人,这是golang问题中的相关近期问题 对于所有受影响的人,在Linux上得到适当修复之前的临时替代方法可以是以下之一: 启用无条件过量使用: 能够无条件过载:添加交换到你的主机,用它几乎永远不会被使用,但在计算参

  • 错误: 更新vlucas/phpdotenv(v2.4.0= 目前AWS实例RAM:2GB 虽然我们已经解决了这个问题,从2GB升级内存= 请检查以下几点: 1) Laravel更新软件包(composar.phar update)所需的推荐内存是多少? 2)laravel在作曲家更新时也使用SWAP内存吗?

  • 我需要在我的主机上运行composer update,因此我使用ssh登录,并尝试在/www文件夹中运行以下命令,我在该文件夹中安装了Laravel和composer: 我得到这个错误: 我正在与我的主机提供商联系,他们告诉我运行命令: 我运行了这个命令,但得到:“无法打开文件:composer” 怎么办?这里的解决方案是什么?

  • 我在Laravel-5.1中有一个项目,我已经将我的平台从win10改为Ubuntu。 显示错误: 使用包信息加载composer存储库 更新依赖项(包括需要开发人员) 无法将您的需求解析为可安装的软件包集。 作曲家/json. }

  • PHP间歇性地报告荒谬的分配错误。 致命错误:第0行中未知的134217728字节的允许内存大小已用尽 (尝试分配4348209864字节) 它试图分配超过4GB的内存。什么哪里是?它试图分配到哪里? 我没有在PHP代码中显式分配任何内存,也没有使用除股票PHP调用以外的任何东西。我看到我的PHP文件中的最后一行原始HTML(在我退出PHP块之后)被发出并在加载的页面中,因此问题似乎没有出现在我的