Nat*_*han 39 php memory memory-management out-of-memory memory-limit
致命错误:允许的内存大小为67108864字节耗尽(尝试分配13965430字节)
PHPInfo显示我有一个128M的memory_limit,所以我很困惑为什么错误说我只有64M.phpinfo是否可能报错?或者为PHP使用两个单独的php.inis?
该错误是由我的一个同事在我不知情的情况下添加的一个主要php文件中的ini_set调用引起的.
Mar*_*c B 36
PHP的配置可以在多个地方设置:
php.ini
(通常在/ etc某处)php_value
)php.ini
(使用命令php -i | grep memory_limit
检查CLI conf)php_value
)ini_set()
)在PHPinfo的输出中,"Master"值是已编译的默认值,"Local"值是实际生效的值.它可以与默认值保持不变,也可以在上述任何位置覆盖.
另请注意,PHP通常具有用于命令行和基于Web服务器的操作的不同.ini文件.phpinfo()
从命令行进行检查将报告与在基于Web的脚本中运行它时不同的值.
小智 23
ini_set('memory_limit', '128M');
Run Code Online (Sandbox Code Playgroud)
要么
php.ini => memory_limit = 128M
Run Code Online (Sandbox Code Playgroud)
要么
php_value memory_limit 128M
Run Code Online (Sandbox Code Playgroud)
Som*_*luk 15
我有同样的问题.我找到了答案:
ini_set('memory_limit', '-1');
Run Code Online (Sandbox Code Playgroud)
更新: 请谨慎使用,因为如果PHP脚本开始使用过多的内存,这可能会降低系统速度,从而导致大量的交换空间使用.你可以使用它,如果你知道程序不会占用太多内存,你也不知道现在设置多少.但是您最终会发现该程序需要多少内存.
您应该始终将内存限制视为@所回答的某个值?ark? dinle
.
ini_set('memory_limit', '512M');
Run Code Online (Sandbox Code Playgroud)
必须在多个位置配置内存.
设置memory_limit
为512M:
sudo vi /etc/php5/cgi/php.ini
sudo vi /etc/php5/cli/php.ini
sudo vi /etc/php5/apache2/php.ini Or /etc/php5/fpm/php.ini
Run Code Online (Sandbox Code Playgroud)
重启服务:
sudo service service php5-fpm restart
sudo service service nginx restart
Run Code Online (Sandbox Code Playgroud)
要么
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
最后它应该解决的问题 memory_limit