当我运行composer require yab/laravel scout mysql驱动程序时
这是我得到的输出:
Using version ^2.40 for yab/laravel-scout-mysql-driver
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.3.2/libexec/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.3.2/libexec/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
我正在运行Composer 1.9.2。
下面是我使用-vvv时输出的最后几行:
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-ircmaxell$password-compat.json from cache
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-paragonie$constant-time-encoding.json from cache
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-yab$laravel-scout-mysql-driver.json from cache
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-symfony$class-loader.json from cache
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-symfony$polyfill-apcu.json from cache
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-symfony$polyfill-xml.json from cache
Reading /Users/redacted/.composer/cache/repo/https---repo.packagist.org/provider-gecko-packages$gecko-php-unit.json from cache
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.3.2/libexec/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.3.2/libexec/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
我的内存限制是128M。https://getcomposer.org/doc/articles/troubleshooting.md#memory-除了增加内存限制之外,限制错误似乎并没有提供很多见解,但似乎128M就足够了?
php-d memory\u limit=-1/usr/local/bin/composer require yab/laravel scout mysql驱动程序
没有帮助-我得到了“允许的内存大小为1610612736字节”的错误。与内存限制=1024M的情况相同。
我做了
php--ini
,从中得到了/usr/local/etc/php/7.1/php.ini
,我编辑它来更改内存限制1024MB,得到了同样的结果:“允许内存大小为1610612736字节”。
奇怪的是,“允许的内存大小”在每个实例中都是完全相同的。好像我所做的一切都没有改变内存大小。
有什么想法吗?
我还得到了确切的1610612736字节耗尽的错误
并通过运行以下命令修复了它:
COMPOSER_MEMORY_LIMIT=-1 php -d memory_limt=-1 $(which composer) install
如果不起作用,请尝试重命名composer.lock
文件,然后重试。
不要删除composer.lock,因为在以前的回答中建议项目,这是在生产。此外,确保它确实存在,它有助于节省大量资源和时间,通过库版本的作曲家锁定避免重新计算依赖关系,使项目行为更可预测。
“composer.lock”是任何项目的必备工具,它的删除类似于所有项目的composer update
。您可能会因为解锁而遇到麻烦,结果是,将库的较新版本提取到项目中,并得到破坏性的更改。在大多数情况下,composer.json中的库版本并不太严格(人们通常会将主版本、最佳情况下的次版本以及几乎从不使用的补丁版本放在库中),因此删除一个大项目的composer.lock可能会导致巨大的问题,并且不会真正起到帮助作用,因为composer必须获取所有可能的分支和所有必需库的版本,这些库是在composer.json中定义的,只是为了生成composer.lock。
您使用php-d memory\u limit=-1/usr/local/bin/composer require yab/laravel scout-mysql驱动程序的解决方案是正确的,在大多数情况下都能正常工作。在我看来,你们的可用内存是有限的。在这种情况下,您可以尝试执行以下操作之一:
>
如果你在OSX环境中的docker容器内,在那里重新配置你的虚拟机(检查docker的首选项,你可以增加可以由docker分配的内存和CPU数量-这是一个非常受欢迎的问题:人们忘记在OSX中有一个运行为docker服务的虚拟机,因此它们在默认情况下具有CPU/MEM/磁盘分配的限制)
如果OSX上的docker不是这样,主机对可用内存有真正的限制,那么理想情况下使用开发环境,它要么有更多的内存,要么为此添加一个交换。 根据我的观察,通常作曲家需要大部分的内存来重新计算所有的依赖关系,找出平台的匹配版本,并从远程存储库中获取哈希,并将所有这些信息放入composer.lock.生成composer.lock后,它不需要太多的内存,所以安装可以在非常有限的内存下完美工作。所以有时我使用一个变通方法,比如(这很糟糕,取决于运气,但有时有效):
运行作曲家需要
并等待,直到一个新的记录出现在composer.lock,然后杀死进程(以避免恢复记录在composer.lock,这是自动发生在安装失败)。如果你幸运的话,你会在达到内存限制之前更新它。
B然后运行composer安装
,最后安装库。
如果这些方法都不起作用,您可以尝试在composer.lock中手动添加记录,并使用适当的散列。在这种情况下,您可以避免重新计算所有依赖项,并立即进入安装过程。但这只是一个快速的胜利,稍后您将再次面临相同的问题(当您下次需要重新计算锁文件时)。
(可能是)编写器更新的副本失败--内存不足
我得到了相同的版本(PHP 7.1,作曲家1.9. x)和完全相同的内存限制(调查后在作曲家内部编码/定义)相同的问题。
所以,当您包围这种错误时,要做的第一件事就是告诉作曲家不要用一个变量来限制内存,就像这样:
COMPOSER_MEMORY_LIMIT=-1作曲家需要"xxx/yyy"
这是推荐的方式,但有时它不起作用。
在我的项目中,似乎每当我执行编写器要求xxx时,composer.lock就会损坏。
因此,为了“修复”它,我做了以下工作:
删除您的供应商
文件夹(rm-fr供应商
)
- 删除
composer.lock
(rmcomposer.lock
) - 确保你的
composer.json
包含你的新需求(它应该在那里,因为以前的作曲家要求
),如果没有,添加它 - 做一个新鲜的
作曲家安装
此时,您将清楚地看到依赖性问题,或者将安装所有内容。
我成功地做了2次。
我已经安装Laravel使用Hostinger自动安装程序。现在,我试图安装的Auth UI使用这个命令:。 我还尝试从命令末尾删除该版本。它显示: 致命错误:允许的内存大小。 请告诉我如何解决这个问题。
问题内容: 我目前在设置AS400(iseries V6R1)和Debian之间的odbc链接时遇到一些问题,我使用iseriesAccess7.1 odbc驱动程序64位,unixODBC2.3.1和php5.4以及unixODBC支持。 我的链接似乎很好,因为我可以使用isql命令(它是unixODBC的一部分)连接到我的数据库,并执行一些SQL查询,但是使用php脚本无法读取数据库中的记录。
问题内容: 我试图通过运行以下命令将HWIOAuthBundle添加到我的项目中。 HWIOAuthBundle github:https : //github.com/hwi/HWIOAuthBundle 当我尝试运行composer时,我遇到了内存不足错误。 将版本^0.6.0@dev用于hwi / oauth-bundle将版本^1.2@dev用于php-http / guzzle6-ada
问题内容: 我有一个网关脚本,它将JSON返回给客户端。在脚本中,我使用set_error_handler捕获错误,并且仍然具有格式化的返回值。 它受到“允许的内存大小用尽”错误的约束,但是与其使用ini_set(’memory_limit’,‘19T’)之类的方法来增加内存限制,我只是想返回用户应该尝试其他方法的原因,因为它过去经常记忆。 有什么好的方法可以捕获致命错误? 问题答案: 就像这个答
我正在使用phpspreadsheet,我想修改一个有4张表的xlsx文件。我只想在2张表中插入数据,但我想将所有4张表复制到新的xlsx文件中。当我这样做时,我会得到以下错误: 编辑:我已经尝试用下面的代码复制我不需要编辑的工作表: 但现在我得到另一个错误: 致命错误:未捕获错误:调用C:\xampp\htdocs\offerconfigurator\vendor\phpoffice\phpsp
使用composer update修复“致命错误:已耗尽X字节的允许内存大小(尝试分配X字节)” 我试图安装作曲家在窗口10安装zf2命令提示符和setup.exe但得到相同的问题提到的内存问题。