php 已用尽允许的262144字节内存大小(尝试分配24576字节)

nuypyhwy  于 2022-12-28  发布在  PHP
关注(0)|答案(9)|浏览(265)

我都快疯了。
我收到了下一条信息:

Allowed memory size of 262144 bytes exhausted (tried to allocate 24576 bytes)

待办事项列表

检查phpinfo(),找到正确的php.ini路径并编辑它。

memory_limit = 128M

确保值memory_limit更改con phpinfo(),结果为:

memory_limit    128MB   128MB

检查.htaccess并添加(不需要)

php_value memory_limit 128M

也可以通过php修改它,比如(在错误行之前):

ini_set('memory_limit','128M');

到处都说内存设置为128 M,但仍然得到那个错误?
错误在Swift库(用于发送电子邮件的库),在abstractSmtpTransport.php中,所以它不是我的代码int的suposed工作.
有什么想法吗???
编辑:是的,之前的是重新启动apache。
编辑2:@帕特里克补充道,但没有任何回应
尝试使用更低的值,每个文件28 M int,重新启动apache,相同的错误(phpinfo显示新值)
尝试-1,重新启动,出现相同错误。
编辑3:允许的内存大于分配的内存,这不是很奇怪吗?(尽管事实上允许的内存大小远远低于实际分配的允许内存)

bjg7j2ky

bjg7j2ky1#

我发现我的问题和你的有点不同,但是我会把这个答案贴出来,以防它对其他人有帮助。我在定义memory_limit时使用MB作为速记,而不是M,php默默地忽略了它。我把它改为整数(以字节为单位),问题就解决了。
我的php.ini修改如下:memory_limit = 512MBmemory_limit = 536870912。这修复了我的问题。希望它对其他人有帮助!你可以在这里阅读php的速记。

    • 编辑**

正如Yaodong所指出的,您可以很容易地使用正确的简写"M",而不是使用字节值。出于调试目的,我将我的简写改为字节值,然后就懒得再改回来了。

6ioyuze2

6ioyuze22#

262,144字节的值是诊断的关键。你会看到这个神奇的数字在PHP问题中到处弹出。为什么?因为如果你试图用一个PHP不能使用的值来更新内存限制,PHP最终将使用这个值作为内存限制。一个空字符串将产生这个内存限制。错误的单位表示法如“128MB”代替正确的“128M”也是如此。
262,144字节正好是256Kibibytes。为什么PHP在混淆时会运行到这个值。
允许的内存比分配的内存大不是很奇怪吗?
显示的分配量只是最近的分配尝试,即与内存限制冲突的尝试。请参阅Allowed memory size in PHP when allocating less

yzuktlbb

yzuktlbb3#

看看这个答案是否对你有帮助,特别是当脚本通过浏览器运行时,CLI的ini可能会不同。
Allowed memory size of X bytes exhausted

pxq42qpu

pxq42qpu4#

在我的例子中,MG都没有帮助,所以我使用以下命令将分配的内存转换为字节:https://www.gbmb.org/mb-to-bytes
4096百万= 4294967296

php.初始化代码:

memory_limit = 4294967296

1szpjjfi

1szpjjfi5#

我试着提高WordPress设置的媒体上传限制,我听从了一些博客的建议,将限制从64MB提高到2GB,我不打算提。
我做了以下工作:
使用以下整数在WP ADMIN中创建了一个(php.ini)文件:

upload_max_filesize = 2000MB
post_max_size = 2100MV
memory_limit = 2300MB

我立即收到这个错误时,试图登录到我的WordPress Jmeter 板检查它是否工作:
"已用尽允许的262144字节内存大小(尝试分配24576字节)"
这条链中的上述信息对我帮助很大。(Stack通常会顺便说一句)
我将PHP.ini文件修改为以下内容:

upload_max_filesize = 2000M
post_max_size = 2100M
memory_limit = 536870912M

主要区别是只使用M而不是MB,并将内存限制设置得更高。
我一保存更改后的phpiderini文件,就保存了它,再次登录,登录屏幕再次出现。
我进去查看了媒体上传,然后砰:
Image showing twordpress media folder “Add New” box, with limits stated as “MAXIMUM UPLOAD FILE SIZE: 2 GB”
我还没有重新启动Apache ...但一切看起来都很好。
谢谢大家。

juud5qan

juud5qan6#

我也遇到了同样的问题。要解决这个问题,你需要更新你的PHP版本。

cs7cruho

cs7cruho7#

有一个类似的问题,修改我的wp-config.php文件没有帮助。我的是一个多站点,我采取了以下步骤来解决它。所以检查看看你的网站是一个多站点,这可能会有帮助。
登录到你的cPanel并检查软件部分。点击“MultiplePHP INI Editor”图标。在“configure PHP INI asic settings”页面,从下拉列表中选择主目录或特定域并编辑。
以下是我对我的版本所做的更改:

memory_limit = 256M
upload_max_filesize = 12M
post_max_size = 13M
file_uploads = On
max_execution_time = 180

保存您的更改,清除浏览器的缓存,然后再检查错误是否消失。

wn9m85ua

wn9m85ua8#

在我的例子中,这是因为我有另一个包含xampp和所有它的文件(htdocs,php e.t. c)的文件夹.就像我在不同的目录中安装了两次Xampp,由于某种原因,另一个的配置影响了我当前的xampp目录,所以我不得不改变另一个目录的php.ini文件中的内存大小.

whitzsjs

whitzsjs9#

如果在尝试通过composer安装某个软件包时发生这种情况,只需使用以下命令COMPSER_MEMORY_LIMIT=-1 composer require nameofpackage

相关问题