Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

php

I was going crazy with this.

I got the next message:

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

TODO LIST

Check phpinfo(), got the right php.ini route and edit it. Change memory_limit to

memory_limit = 128M 

Make sure the value memory_limit changes con phpinfo() with the result:

memory_limit    128MB   128MB 

Check .htaccess and added (not needed)

php_value memory_limit 128M 

And also to change it via php like so (before error line):

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

It says everywhere that memory is set to 128M, but still get that error?

The error is in Swift library (library for sending emails), in abstractSmtpTransport.php, so it's not my code int's suposed to work.

Any ideas???

Edit: Yes, the previous was done restarting apache.

EDIT 2: @patrick, added that but nothing was echoed

Tryed with lower value, 28M int every file, restarted apache, same error (phpinfo showed new value)

tried with -1, restarting, and same error.

EDIT 3: isn't it weird that allowed memory is bigger than allocated memory? (despite the fact that allowed memory size is way below real allowed memory asigned)

like image 377
monxas Avatar asked Apr 23 '13 17:04

monxas


People also ask

How do I fix the allowed memory size 134217728 bytes exhausted?

The correct way is to edit your php. ini file. Edit memory_limit to your desire value. As from your question, 128M (which is the default limit) has been exceeded, so there is something seriously wrong with your code as it should not take that much.


1 Answers

I see my problem is a little bit different from yours, but I'll post this answer in case it helps someone else. I was using MB as shorthand instead of M when defining my memory_limit, and php was silently ignoring it. I changed it to an integer (in bytes) and the problem was solved.

My php.ini changed as follows: memory_limit = 512MB to memory_limit = 536870912. This fixed my problem. Hope it helps with someone else's! You can read up on php's shorthand here.

Good luck!

Edit

As Yaodong points out, you can just as easily use the correct shorthand, "M", instead of using byte values. I changed mine to byte values for debugging purposes and then didn't bother to change it back.

like image 200
kael Avatar answered Oct 11 '22 13:10

kael