我对此感到很疯狂。
我收到了下一条消息:
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:允许的内存大于分配的内存是不是很奇怪? (尽管允许的内存大小远低于实际允许的内存,但
)答案 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可能与脚本通过浏览器运行时不同。
答案 3 :(得分:2)
在我的情况下,M
或G
都没有帮助,因此我使用以下命令将分配的内存转换为字节: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文件,我保存了它,再次登录并重新登录登录屏幕。
我进去检查媒体上传,然后发出声音:
我还没有重新启动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作曲家需要包名