我为此感到疯狂.
我收到了下一条消息:
Allowed memory size of 262144 bytes exhausted (tried to allocate 24576 bytes)
Run Code Online (Sandbox Code Playgroud)
TODO LIST
检查phpinfo(),获得正确的php.ini路由并进行编辑.将memory_limit更改为
memory_limit = 128M
Run Code Online (Sandbox Code Playgroud)
确保值memory_limit使用结果更改con phpinfo():
memory_limit 128MB 128MB
Run Code Online (Sandbox Code Playgroud)
检查.htaccess并添加(不需要)
php_value memory_limit 128M
Run Code Online (Sandbox Code Playgroud)
并且还通过php更改它(在错误行之前):
ini_set('memory_limit','128M');
Run Code Online (Sandbox Code Playgroud)
它说到处都将内存设置为128M,但仍然会出现错误?
错误发生在Swift库(用于发送电子邮件的库)中,在abstractSmtpTransport.php中,所以它不是我的代码int的工作.
有任何想法吗???
编辑:是的,前一个完成重启apache.
编辑2:@patrick,补充说,但没有回应
尝试使用较低的值,每个文件28M int,重启apache,同样的错误(phpinfo显示新值)
尝试使用-1,重新启动,同样的错误.
编辑3:允许的内存大于分配的内存是不是很奇怪?(尽管允许的内存大小远低于实际允许的内存)
kae*_*ael 132
我发现我的问题与你的问题有点不同,但我会发布这个答案以防万一.我使用的MB是速记而不是M在定义我的memory_limit时,而php却在默默地忽略它.我把它改成了一个整数(以字节为单位),问题解决了.
我的php.ini更改如下:memory_limit = 512MBto memory_limit = 536870912.这解决了我的问题.希望它可以帮助别人的!你可以在这里阅读php的简写.
祝好运!
编辑
正如姚东指出的那样,您可以轻松使用正确的简写"M",而不是使用字节值.为了调试目的,我将我的字符串更改为字节值,然后又无需将其更改回来.
262,144字节的值是诊断的关键.你会看到这个神奇的数字在整个PHP问题中弹出.为什么?因为如果您尝试使用无法使用的值更新限制,那么PHP将最终作为其内存限制的值.空字符串将产生此内存限制,不正确的单位表示法(如"128MB")而不是正确的"128M"也是如此.
262,144字节恰好是256 Kibibytes.当PHP混淆时为什么PHP运行到那个值是超出我的.
允许的内存大于分配的内存是不是很奇怪?
显示的分配数量只是最近的分配尝试,与内存限制相冲突.分配较少时,请参阅PHP中允许的内存大小.
| 归档时间: |
|
| 查看次数: |
88035 次 |
| 最近记录: |