【问题标题】:PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes)PHP致命错误:允许的内存大小为1073741824字节已用尽(试图分配16777216字节)
【发布时间】:2019-05-21 01:34:08
【问题描述】:

我在我的16 GB Mac Book Pro 上运行 composer install,我得到了这个

 ⚡️  distributor-portal  composer install                                                                                                       
Loading composer repositories with package information
Updating dependencies (including require-dev)                      
PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 220

Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 220

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.⚡️  distributor-portal 

哪个php

/usr/local/php5/bin/php

php --version

PHP 7.1.4 (cli) (built: May  6 2017 10:02:00) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.4, Copyright (c) 1999-2017, by Zend Technologies

cd /usr/local/; ls -lrt

total 0
lrwxr-xr-x    1 root   wheel    26B Jan 23  2017 openssl@ -> mac-dev-env/openssl-1.1.0c
lrwxr-xr-x    1 root   wheel    37B Jul  5  2017 php5@ -> /usr/local/php5-7.1.4-20170506-100436
lrwxr-xr-x    1 root   wheel    30B Oct  9  2017 mysql@ -> mysql-5.7.19-macos10.12-x86_64
-rw-r--r--    1 root   wheel     0B Dec 12 14:47 .com.apple.installer.keep
drwxr-xr-x@  10 root   wheel   320B Dec 12 15:51 ../
drwxr-xr-x    3 root   wheel    96B Dec 12 15:52 mac-dev-env/
drwxr-xr-x    3 root   wheel    96B Dec 12 15:53 remotedesktop/
drwxr-xr-x   21 root   wheel   672B Dec 12 15:53 ./
drwxr-xr-x   15 bheng  admin   480B Dec 12 15:53 etc/
drwxr-xr-x   14 501    wheel   448B Dec 12 15:54 packager/
drwxr-xr-x   25 bheng  admin   800B Dec 12 15:54 share/
drwxr-xr-x   14 root   wheel   448B Dec 12 15:54 php5-7.1.4-20170506-100436/
drwxr-xr-x   71 bheng  admin   2.2K Dec 12 15:54 Cellar/
drwxr-xr-x   11 bheng  admin   352B Dec 12 15:54 var/
drwxr-xr-x  396 bheng  admin    12K Dec 12 15:54 bin/
drwxr-xr-x   13 bheng  admin   416B Dec 12 15:54 php5-5.6.14-20151002-085853/
drwxr-xr-x   80 bheng  admin   2.5K Dec 12 15:54 opt/
drwxr-xr-x   13 root   wheel   416B Dec 12 15:54 mysql-5.7.19-macos10.12-x86_64/
drwxr-xr-x   17 bheng  admin   544B Dec 12 15:54 Homebrew/
drwxr-xr-x  122 bheng  admin   3.8K Dec 12 15:54 include/
drwxr-xr-x  231 bheng  admin   7.2K Dec 12 15:54 lib/

如何进一步调试?

【问题讨论】:

  • 检查你是否在服务器中推送composer.lock
  • 如何检查?那到底是为了什么?
  • 查看服务器中composer.lock是否存在
  • 是的,它存在很多代码。比如4905行代码![](i.imgur.com/acGgPeu.png)
  • 试试composer install --no-dev

标签: php laravel laravel-5 composer-php macos-mojave


【解决方案1】:

您的机器可能安装了 16GB,但 PHP 未配置为使用它。找到您的 php.ini 文件(在 OSX 上,通过 Homebrew 安装 PHP,其地址为 /usr/local/etc/php/$PHP_VERSION/php.ini。使用编辑器打开它并搜索 memory_limit。您可以在此处指定 PHP 进程可以使用多少内存。如果您愿意给它全部将值更改为-1

$PHP_VERSION 是您的 PHP 安装版本。要确定安装了哪个,请使用php --version

【讨论】:

  • 你怎么知道我用的是 php 7.2 ?这只是我要遵循的样本吗?
  • 虽然这个答案会让你继续前进,但你应该找到内存泄漏的根本原因。
  • php version show version 7, which php show version 5, 我怎么知道我应该更新哪个 PHP ini???‍♂️ : i.imgur.com/Aorry2N.png
  • 更新到-1后需要重启服务吗?
  • 您可以通过php -i | grep memory_limit查看更改是否发生。
【解决方案2】:

运行 composer install 命令时在终端中设置COMPOSER_MEMORY_LIMIT=-1

Run COMPOSER_MEMORY_LIMIT=-1 composer install instead of composer install

【讨论】:

    【解决方案3】:

    在 php 前面运行 COMPOSER_MEMORY_LIMIT=-1 可以,但不是最好的解决方案。理想情况下,您需要将memory_limit 设置设置为更高的值。

    我已经用 brew 安装了php@7.4,它工作正常,但是不知何故,正在使用的 php.ini 是 ma​​c 上的默认值,而不是 php@7.4 上的默认值,即使当我做 php --iniphp -v 它指向我的 brew 版本。

    我通过增加 /etc/php.ini 中的 memory_limit 解决了内存问题 .. 而 php --ini 告诉我我的 ini 文件在 /usr/local/etc/php/7.4/php.ini

    【讨论】:

      猜你喜欢
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多