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

编写器更新内存限制

韦知
2023-03-14

我需要在我的主机上运行composer update,因此我使用ssh登录,并尝试在/www文件夹中运行以下命令,我在该文件夹中安装了Laravel和composer:

composer update

我得到这个错误:

我正在与我的主机提供商联系,他们告诉我运行命令:

php -d memory_limit=512M composer update

我运行了这个命令,但得到:“无法打开文件:composer”

怎么办?这里的解决方案是什么?

共有3个答案

华良平
2023-03-14

对我来说最好的解决办法就是

COMPOSER_MEMORY_LIMIT=-1 composer require <package-name>

@realtebo提及

陶修洁
2023-03-14

运行composer update时,操作系统将查看配置的路径,并尝试查找具有该名称的可执行文件。

当运行php作曲家更新时,作曲家字符串被视为PHP的参数,不会在任何路径中搜索。您必须提供完整的路径才能运行它。

运行哪个composer将告诉您操作系统在哪里找到composer可执行文件,然后您只需在PHP命令中使用完整路径:

$>which composer
/usr/local/bin/composer

$>php -d memory_limit=512M /usr/local/bin/composer update
...

请注意,512MB可能太少。我的看法是,它将愉快地需要1GB或更多,这取决于您使用的依赖关系的数量和您理论上允许的版本的多样性,即如果您允许Symfony~2.3,那么您将使Composer处理更多的可能性与使用~2.7相比的版本。

还要注意,在生产机器上运行Composer并不是最好的主意。您必须能够访问Github,可能需要提供访问凭据,安装VCS工具,并且如果在更新过程中任何远程托管服务器处于脱机状态,您将很容易破坏您的站点。最好在完成所有准备工作的部署系统上使用Composer,然后将所有文件移动到生产服务器上。

使现代化

现在是2020年,作曲家管理记忆的方式发生了很大的变化。最重要的是,如果遇到设置得太低的限制,Composer将自行增加内存限制。但是,这会立即引发在安装了太少内存的计算机上内存不足的问题。通过设置环境变量,如Composer\u memory\u LIMIT=512M,可以使Composer使用更少的内存,但如果Composer需要更多内存才能正确操作,则会产生问题。

我的主要观点仍然是正确的:不要在内存太少的机器上运行Composer。您可能需要1.5 GB的可用内存才能更新所有内容。

姚宪
2023-03-14

将其设置为使用所需的内存:

COMPOSER_MEMORY_LIMIT=-1 composer update
 类似资料:
  • 我有业务托管在nkl.com,不幸的是我不能使用作曲家在那里了。支持写了更多,我已经达到了1.5 GB的限制,更多是不可能的。 现在我的问题是,有没有办法让Composer一块一块地更新或安装它,这样就可以释放中间的内存,或者有没有其他解决方案可以在服务器上运行我的Laravel应用程序? 目前,Composer JSON中包含以下包。还有一些计划。

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

  • 我奔跑 我得到一个错误: 无法将您的需求解析为可安装的软件包集。 当前在require dev中有以下设置: 以及我们公司创建的一个不相关的翻译包。 我正在尝试将codeception更新到最新版本。 我已经尝试过在不同的版本中设置phpunit,但我无法消除错误。 我做错了什么? 最新消息 我更新composer.json使用相同版本的包 输出,除 跑了 仍然得到错误: 那是为什么呢?在我设置新

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

  • 我试图通过Composer在客户端的Magento 2上安装一个扩展,但我遇到了旧的PHP内存溢出错误。 我的客户端由Bluehost托管,不幸的是,这意味着我不能直接进入并更改php.ini中的内存限制,因为它是只读的,而且它们的cPanel MultiHP ini编辑器不会影响SSH。我的客户机已经与Bluehost联系过,他们被告知Bluehost不允许更改SSH内存限制,但是,我的客户机最

  • 我就是解决不了这个问题。 我在Linode 1G RAM的基本计划。试图通过Composer安装一个包,它不让我。我的内存限制设置为"-1"在PHP. ini 我还能做些什么来安装这个吗?