Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

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)

Also, you updated the right config files, right? You will find similar ini files in apache, php etc – Kai Qing Apr 23, 2013 at 17:08 Try to give memory limit to -1 (maximum) if you still get the same error that means something definitely goes wrong in code. May be a infinite loop. – Rikesh Apr 23, 2013 at 17:11

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.

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.

+1. I couldn't do +10. How many people must this have caught out over the years? PHP needs to be a little more user friendly – Wandering Zombie Jun 14, 2013 at 16:26 +1 for using M instead of MB or bytes. Much more readable and you don't have to use any converter just to change the limit. – Victor Bjelkholm Sep 23, 2014 at 8:03 Haha, yes, I'll +1 that, too. I was just in debug mode and hadn't come back into normal production thinking yet. – kael Nov 30, 2014 at 6:06 @WanderingZombie PHP must die already, who the hell uses M for MB? Sorry, it has been more than a year since you posted, but I cannot keep it in. + Their comment is gives an example (128MB), very thankful indeed. – mehmetminanc Dec 5, 2014 at 0:37

The value of 262,144 bytes is the key to the diagnosis. You'll see this magic number pop up in PHP questions all over the place. Why? Because that is the value PHP will end up with as its memory limit if you attempt to update the limit with a value it can't use. An empty string will produce this memory limit, as will an incorrect unit notation like '128MB' instead of the correct '128M'.

262,144 bytes is exactly 256 Kibibytes. Why PHP runs home to that value when it gets confused is beyond me.

isn't it weird that allowed memory is bigger than allocated memory?

The allocated amount shown is just the most recent allocation attempt, the one that ran afoul of the memory limit. See Allowed memory size in PHP when allocating less.

Thanks! Finally, an answer why the allowed is bigger than allocated. This was driving me nuts. – agoldev Mar 23, 2018 at 12:49

See if this answer can help you. Particularly the fact that CLI ini could be different than when the script is running through a browser.

Allowed memory size of X bytes exhausted

Nope, not any ini set in my code, only the one i'm using to try to raise it up, without success – monxas Apr 23, 2013 at 17:28

In my case neither M or G helped, so I have converted allocated memory to bytes using: https://www.gbmb.org/mb-to-bytes

4096M = 4294967296

php.ini:

memory_limit = 4294967296

I was trying to up the limit Wordpress sets on media uploads. I followed advice from some blog I’m not going to mention to raise the limit from 64MB to 2GB.

I did the following:

Created a (php.ini) file in WP ADMIN with the following integers:

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

I immediately received this error when trying to log into my Wordpress dashboard to check if it worked:

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

The above information in this chain helped me tremendously. (Stack usually does BTW)

I modified the PHP.ini file to the following:

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

The major difference was only use M, not MB, and set that memory limit high.

As soon as I saved the changed the PHP.ini file, I saved it, went to login again and the login screen reappeared.

I went in and checked media uploads, ands bang:

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

I haven't restarted Apache yet… but all looks good.

Thanks everyone.

I often see people setting the Memory limit very high, without knowing which knock on effect this has on your server. If you have 16 gigs of ram, with a 2 Gig Memory limit you are allowing 8 processes(in theory) to max out your memory usage if you should run into a memory leak, for example. Your error indicates that your limit of 256 KB was exhausted with ~24KB, so setting your memory_limit to 2 Gig is WAY too high. A limit of 384K would work here, or even a HIGH value of 4 Meg would work in your case. That leaves you 4000 Apache processes to fit into your 16 Gigs of RAM, rather than 8. – TBlaar Oct 23, 2017 at 8:58

Had a similar issue and modifying my wp-config.php file did not help. Mine was a multisite and the steps I took to solve it are below. So check to see if your site is a multisite and this might help.

Log into your cPanel and check the software section. Click on the "MultiplePHP INI Editor" icon. On the "configure PHP INI asic settings" page, select the Home Directory or specific domain from the dropdown and edit.

These are the changes I made to mine:

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

Save your changes, clear your browser's cache before checking to see is the error is gone.

In my case it was because I had another folder that contained xampp and all it's files (htdocs, php e.t.c). Like I installed Xampp twice in different directories and for some reason the configurations of the other one was affecting my current xampp directory and so I had to change the memory size in the php.ini file of the other directory too.

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.