允许的内存大小为262144字节耗尽(尝试分配24576字节)

时间:2013-04-23 17:04:51

标签: php

我对此感到很疯狂。

我收到了下一条消息:

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

TODO LIST

检查phpinfo(),获得正确的php.ini路由并进行编辑。 将memory_limit更改为

memory_limit = 128M

确保值memory_limit使用结果更改con phpinfo():

memory_limit    128MB   128MB

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

php_value memory_limit 128M

并且还要通过php改变它(在错误行之前):

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

它说到处将内存设置为128M,但仍然会出现错误?

错误发生在Swift库(用于发送电子邮件的库)中,在abstractSmtpTransport.php中,因此不是我的代码int的工作。

任何想法???

编辑:是的,之前的操作是重启apache。

编辑2: @patrick补充道,但没有任何回应

尝试使用较低的值,每个文件28M int,重新启动apache,同样的错误(phpinfo显示新值)

尝试使用-1,重新启动,同样的错误。

编辑3:允许的内存大于分配的内存是不是很奇怪? (尽管允许的内存大小远低于实际允许的内存,但

9 个答案:

答案 0 :(得分:127)

我发现我的问题与你的问题有点不同,但我会发布这个答案以防万一。在定义我的memory_limit时,我使用MB作为简写而不是M,并且php默默地忽略它。我把它改成了一个整数(以字节为单位),问题解决了。

我的php.ini更改如下:memory_limit = 512MB改为memory_limit = 536870912。这解决了我的问题。希望它可以帮助别人的!你可以阅读php的简写here

祝你好运!

修改

正如姚东指出的那样,您可以轻松使用正确的简写“M”,而不是使用字节值。为了调试的目的,我将我的字符串更改为字节值,然后又无需将其更改回来。

答案 1 :(得分:9)

262,144字节的值是诊断的关键。你会看到这个神奇的数字在整个PHP问题中弹出。为什么?因为如果您尝试使用无法使用的值更新限制,那么PHP将最终作为其内存限制的值。空字符串将产生此内存限制,不正确的单位表示法(如“128MB”)而不是正确的“128M”。

262,144字节正好是256 Kibibytes。当PHP混淆时,为什么PHP会运行到该值,这超出了我的范围。

  

允许的内存大于分配的内存是不是很奇怪?

显示的分配数量只是最近的分配尝试,与内存限制相冲突。请参阅Allowed memory size in PHP when allocating less

答案 2 :(得分:2)

看看这个答案是否可以帮到你。特别是CLI ini可能与脚本通过浏览器运行时不同。

Allowed memory size of X bytes exhausted

答案 3 :(得分:2)

在我的情况下,MG都没有帮助,因此我使用以下命令将分配的内存转换为字节:https://www.gbmb.org/mb-to-bytes

  

4096M = 4294967296

php.ini:

memory_limit = 4294967296

答案 4 :(得分:1)

我试图提高Wordpress在媒体上传时设置的限制。我按照一些博客的建议,我不会提到将限制从64MB提高到2GB。

我做了以下事情:

使用以下整数在WP ADMIN中创建一个(php.ini)文件:

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

我在尝试登录我的Wordpress仪表板时立即收到此错误,以检查它是否有效:

“允许的内存大小耗尽262144字节(试图分配24576字节)"

这条链中的上述信息对我帮助很大。 (堆栈通常做BTW)

我将PHP.ini文件修改为以下内容:

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

主要区别仅在于使用M而不是MB,并将内存限制设置为高。

一旦保存了更改的PHP.ini文件,我保存了它,再次登录并重新登录登录屏幕。

我进去检查媒体上传,然后发出声音:

Image showing twordpress media folder “Add New” box, with limits stated as “MAXIMUM UPLOAD FILE SIZE: 2 GB”

我还没有重新启动Apache ......但一切看起来都不错。

谢谢大家。

答案 5 :(得分:1)

我遇到了同样的问题。要解决此问题,您需要更新PHP版本。

答案 6 :(得分:1)

遇到了类似的问题,修改我的 wp-config.php 文件没有帮助。我的是一个多站点,我为解决它而采取的步骤如下。因此,请检查您的站点是否是多站点站点,这可能会有所帮助。

登录您的 cPanel 并检查软件部分。单击“MultiplePHP INI 编辑器”图标。在“配置 PHP INI asic 设置”页面上,从下拉列表中选择主目录或特定域并进行编辑。

这些是我对我所做的更改:

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

保存您的更改,在检查错误是否消失之前清除浏览器的缓存。

答案 7 :(得分:0)

在我的情况下,这是因为我有另一个包含xampp及其所有文件的文件夹(htdocs,php e.t.c)。就像我在不同目录中两次安装Xampp一样,由于某种原因,另一个的配置影响了我当前的xampp目录,因此我也必须更改另一个目录的php.ini文件中的内存大小。

答案 8 :(得分:0)

如果在尝试通过composer安装某些软件包时发生这种情况,只需使用此命令 COMPOSER_MEMORY_LIMIT = -1作曲家需要包名