PHP Fatal error: Allowed memory size in /var/www/html/vendor/composer/ClassLoader.php
PHP Fatal error: Allowed memory size in /var/www/html/vendor/composer/ClassLoader.php
Laravel 4.2,亚马逊 ec2 Linux
PHP 致命错误:
Allowed memory size of 262144 bytes exhausted (tried to allocate 3072 bytes) in /var/www/html/vendor/composer/ClassLoader.php on line 78
TL;DR 您需要在 php.ini 中增加 memory_limit
设置。您几乎没有让您的脚本使用任何内存。
问题
错误消息 Allowed memory size of 262144...
表示您的 memory_limit
设置为 256 kb。那太低了。对于大多数有用的应用程序,您至少需要几 MB。我会从 8MB 开始,然后看看效果如何。
解决方案
更改 memory_limit
设置。理论上,您可以通过两种方式执行此操作:(1) 编辑 php.ini 或 (2) 使用 ini_set()
.
实际上,您不能总是使用 ini_set('memory_limit', value);
。一方面,某些扩展,如 suhosin,会阻止脚本以这种方式设置 memory_limit
。另一方面,您必须小心操作。例如,您建议使用 ini_set('memory_limit', '1G');
。但是the shorthand (K
, M
, G
) only works in php.ini, not in ini_set
。您必须输入实际的字节数(例如 1073741824
)。此外,1G
对大多数用途来说都太过分了;非常非常少的非恶意 PHP 脚本需要这样的东西。即使是像 WordPress 这样相当笨重的框架,通常 运行 在 64 MB 左右,即使加载了很多插件。
如何更改 php.ini
中的设置
弄清楚您正在使用哪个 php.ini 文件(根据您的安装方式,有几个浮动的情况并不少见)。您可以通过两种方式做到这一点:
- 将其放入 .php 文件并 运行 它:
<?php phpinfo();
- 在命令行中,键入
php -i | grep php.ini
。您应该会看到一行类似 Loaded Configuration File => /etc/php.ini
的内容(当然,输出可能因系统而异)。
通过将以 memory_limit =
开头的行更改为更合适的内容来编辑您刚刚找到的文件,例如
memory_limit = 8M
您可以根据需要随意增加该数字,但我建议您从小规模开始(而不是 1G
),以防止不小心让您的服务器瘫痪。
一个警告:如果这是一台 testing/development 机器,而你正在 运行 调试器或像 xdebug 这样的分析器,你可能需要更高的起点,而 1G
不是疯狂的。但是不要在生产机器上以这么高的数字开始;努力做到这一点。
Laravel 4.2,亚马逊 ec2 Linux
PHP 致命错误:
Allowed memory size of 262144 bytes exhausted (tried to allocate 3072 bytes) in /var/www/html/vendor/composer/ClassLoader.php on line 78
TL;DR 您需要在 php.ini 中增加 memory_limit
设置。您几乎没有让您的脚本使用任何内存。
问题
错误消息 Allowed memory size of 262144...
表示您的 memory_limit
设置为 256 kb。那太低了。对于大多数有用的应用程序,您至少需要几 MB。我会从 8MB 开始,然后看看效果如何。
解决方案
更改 memory_limit
设置。理论上,您可以通过两种方式执行此操作:(1) 编辑 php.ini 或 (2) 使用 ini_set()
.
实际上,您不能总是使用 ini_set('memory_limit', value);
。一方面,某些扩展,如 suhosin,会阻止脚本以这种方式设置 memory_limit
。另一方面,您必须小心操作。例如,您建议使用 ini_set('memory_limit', '1G');
。但是the shorthand (K
, M
, G
) only works in php.ini, not in ini_set
。您必须输入实际的字节数(例如 1073741824
)。此外,1G
对大多数用途来说都太过分了;非常非常少的非恶意 PHP 脚本需要这样的东西。即使是像 WordPress 这样相当笨重的框架,通常 运行 在 64 MB 左右,即使加载了很多插件。
如何更改 php.ini
中的设置弄清楚您正在使用哪个 php.ini 文件(根据您的安装方式,有几个浮动的情况并不少见)。您可以通过两种方式做到这一点:
- 将其放入 .php 文件并 运行 它:
<?php phpinfo();
- 在命令行中,键入
php -i | grep php.ini
。您应该会看到一行类似Loaded Configuration File => /etc/php.ini
的内容(当然,输出可能因系统而异)。
通过将以 memory_limit =
开头的行更改为更合适的内容来编辑您刚刚找到的文件,例如
memory_limit = 8M
您可以根据需要随意增加该数字,但我建议您从小规模开始(而不是 1G
),以防止不小心让您的服务器瘫痪。
一个警告:如果这是一台 testing/development 机器,而你正在 运行 调试器或像 xdebug 这样的分析器,你可能需要更高的起点,而 1G
不是疯狂的。但是不要在生产机器上以这么高的数字开始;努力做到这一点。