PHP致命错误:允许的1073741824字节的内存大小已用尽(尝试分配16777216字节)

PHP致命错误:允许的1073741824字节的内存大小已用尽(尝试分配16777216字节),php,laravel,laravel-5,composer-php,macos-mojave,Php,Laravel,Laravel 5,Composer Php,Macos Mojave,我在我的16GBMacBookPro上运行了composer安装程序,我得到了这个 ⚡️ distributor-portal composer install Loading composer repositories with package information Updating

我在我的
16GB
MacBookPro上运行了composer安装程序,我得到了这个

 ⚡️  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 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
php——版本

/usr/local/php5/bin/php
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-轻轨

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/

如何进一步调试它?

您的机器可能安装了16GB,但PHP没有配置为使用它。找到您的php.ini文件(在OSX上,php由Homebrew its安装在
/usr/local/etc/php/$php\u VERSION/php.ini
上)。用编辑器打开它,搜索
内存限制
。在这里您可以指定一个php进程可以使用的内存量。如果愿意,请将值更改为
-1


$PHP\u VERSION
是PHP安装的版本。要确定安装了哪个版本,请在运行COMPOSER install命令时,在终端中使用
PHP--VERSION

设置
COMPOSER\u MEMORY\u LIMIT=-1

Run COMPOSER_MEMORY_LIMIT=-1 composer install instead of composer install

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

我已安装
php@7.4
使用brew,它工作正常,但不知何故,正在使用的php.ini是mac上的默认php.ini,而不是使用php@7.4,即使当我执行
php--ini
php-v
时,它也指向我的brew版本


我通过增加
/etc/php.ini
中的内存限制修复了内存问题。而php--ini告诉我我的ini文件位于
/usr/local/etc/php/7.4/php.ini

检查您是否在服务器中推送
composer.lock
如何检查?这是为了什么?请参阅服务器中的
composer.lock
是否存在,是的存在大量代码。例如4905行代码![]()尝试
composer安装--no dev
你是如何知道我使用了PHP7.2的?这只是我要遵循的一个示例吗?虽然这个答案会让你前进,但你应该找到mem泄漏的根本原因。php版本show version
7
,哪个php版本show version
5
,我如何知道应该更新哪个PHPINI?我们需要休息吗art更新到
-1
后的任何服务?您可以通过
php-i | grep memory_limit
检查更改是否发生。