致命错误:允许的内存大小为 33554432 字节已用尽 - Laravel 8
Posted
技术标签:
【中文标题】致命错误:允许的内存大小为 33554432 字节已用尽 - Laravel 8【英文标题】:Fatal error: Allowed memory size of 33554432 bytes exhausted - Laravel 8 【发布时间】:2021-04-08 13:50:46 【问题描述】:我有User_controller
,还有函数user_details
,这个函数返回视图名称user_details
。
此视图包含多个细节,一般会有10到15组(行)细节显示在页面上(细节来自数据库使用user_details
表)。
它工作正常,但在某些情况下,当用户详细信息达到 30 到 35 组(行)时,我在 error_log 文件中遇到错误
php 致命错误:已用完允许的 33554432 字节内存大小 (试图分配 5896720 字节)在 /laravel/framework/src/Illuminate/View/Engines/PhpEngine.php 上线 63 PHP 致命错误:允许的内存大小为 33554432 字节已用尽 (试图分配 6414336 字节)在 /vendor/symfony/http-foundation/Response.php 在第 1235 行
在下面一行返回错误:
return view('admin.views.user_details', ['user' => $user[0]
, 'user_details' => $user_details);
【问题讨论】:
增加 php.ini 中的内存限制,~32mb 是相当低的值,我建议至少设置 128mb。 这能回答你的问题吗? Allowed memory size of 536870912 bytes exhausted in Laravel 我没有服务器访问权限,所以我无法修改服务器上的任何内容,是否还有其他方式,例如更改 laravel 文件以减少内存使用? 建议检查为什么脚本占用这么多内存。大多数情况下,这是不受欢迎的行为,因此应该更改脚本而不是内存限制。 在您的 UserController 中,向我们展示完整的user_details()
方法。看起来您从数据库中加载了太多数据(提示:$user[0]
)填充内存并在刀片渲染中崩溃。
【参考方案1】:
您可以根据需要设置内存大小:
ini_set('memory_limit', '64M');`
在做这样的事情之前,你应该先检查真正的问题。如果可能,尽量避免。
【讨论】:
【参考方案2】:在 cpanel 中检查 memory_limit=-1
【讨论】:
【参考方案3】:你需要打开
内存限制
然后将数字更改为您想要的任何值。例如:
memory_limit = 256M
⚠️不推荐⚠️您也可以编辑 .htaccess 文件并添加/编辑这一行
php_value memory_limit 256M
就这些了?
【讨论】:
以上是关于致命错误:允许的内存大小为 33554432 字节已用尽 - Laravel 8的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)
php中允许的内存大小为33554432字节耗尽(尝试分配43148176字节)
致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)
php - 致命错误:允许的内存大小为 134217728 字节已用尽 [重复]