O'Reilly

Increase PHP Memory Allowance Using ini_set()

By on  

On rare occasion, I need to up the memory allowed for PHP. Usually it's when I deal with large files and don't necessarily care about optimizing the file reading process but simply getting the file opened. There's an easy way to increase to amount of memory allowed to PHP right in your script:

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

The above code will increase the maximum amount of memory available to PHP to 16 MB. Again, the setting is only adjusted for the running script.

Track.js Error Reporting

Recent Features

  • 9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

  • Chris Coyier’s Favorite CodePen Demos

    David asked me if I'd be up for a guest post picking out some of my favorite Pens from CodePen. A daunting task! There are so many! I managed to pick a few though that have blown me away over the past few months. If you...

Incredible Demos

  • jQuery Chosen Plugin

    Without a doubt, my least favorite form element is the SELECT element.  The element is almost unstylable, looks different across platforms, has had inconsistent value access, and disaster that is the result of multiple=true is, well, a disaster.  Needless to say, whenever a developer goes...

  • Image Reflection with jQuery and MooTools

    One subtle detail that can make a big difference on any web design is the use of image reflections. Using them too often can become obnoxious but using reflections on large, "masthead" images is a classy enhancement. Unfortunately creating image reflections within your...

Discussion

  1. chuck

    I had to do this recently for a client who had joomla (yuck) installed. I just posted this in the top of their main index.php file so it was loaded on every page. It’s really good as a quickfix if you’re using something like Gallery or Joomla along with php-cgi, since php-cgi doesnt let you use htaccess.

  2. Thank you o-b-wan, both for this post, and the kindly remonstration given on the other post that sent me here.

    :)

    Michael

  3. This worked great David.

    I had to place it below some other “session_start();” code in the index2.php file of a troublesome joomla installation, but it worked just as you offered.

    memory_limit Local 16M; Master 8M

    Thanks again o-b-wan.

    Off to look for the next pebble…
    :)

    Michael

  4. Sam

    I have a problem with wordpress installing plugins where I get the error:

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 122880 bytes) in /var/virtual/web/w1032/html/wp-content/plugins/wp-postratings/wp-postratings.php on line 872
    

    Which file should I place the code in? And I obviously need to increase it past 16MB so can I just put in:

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

    maybe wp-config.php or the actual plugin? wp-postrating.php?

  5. Sam

    I cannot install plugins on wordpress due to a memory error.

    I can’t get to php.ini, which file do you know should I put

    ini_set(‘memory_limit’,’24M’)

    in?

    wp-config, the plugin script or all the wp php files?

    thanks!

  6. Akshay

    @Sam: You have to put

    ini_set(’memory_limit’,'24M’);
    

    this line of code in the file/page, which on calling gives the error.

  7. Tob-e

    I’ve got a strange behaviour on PHP 5.2.11.
    The php.ini set the memory_limit to 128MB. I can adjust the limit to 64M but never above the limit of 128M.

    Did someone noticed a similar problem?

  8. I tried to install wordpress 3.0.1 and i received this message : Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2966269 bytes) in /home/blidaru/public_html/wp-includes/http.php on line 1364

    What i have to do?

    • put this on top of your http.php file

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

      if that didn’t worked out try increasing 32M until it works for you

  9. ini_set('memory_limit', '-1'); will be a neat solution as well. but I am still not sure of any side effects of this!

    • Chasalin

      Dangerous!

      If you happen to have any flaw in your code, this could cause your server to become unresponsive.

      Setting the memory_limit to -1 (infinite) should only be done for testing purposes on non-production machines!

  10. Life saver, as always David.

    Host of my dedicated saw fit to lower all max memory across their entire network for “security reasons”. Screw em, Big Daddy Walsh has my answer!

    • Blgr3

      Tried, didn’t work…

  11. Thanks David but it didn’t work in my case – I think my host has put a limit on memory access – had an image resizing script with imagecreatetruecolor() – and script just would not go past it.

  12. gaurav

    set

    ini_set(“memory_limit”,”128M”);

  13. berk

    Here are 3 ways on how to increase it

    http://newexception.com/php-increase-memory-limit

  14. I need to put this in php.ini file or .htaccess file ?

  15. @samily .htaccess is important in main folder (public_html) not in php.ini

  16. Sanjiv

    Great works I just added and it works.

    ini_set('memory_limit','32M');
  17. Egon_Freeman

    Just so you know, the administrator CAN limit your ability to increase this limit! There’s such a thing called PHP Safe Mode, and in this mode you can set function calls that will NOT be executed, no matter who calls them or from where. One of these functions can be ini_set(), which would block it completely.

    You can also try setting it via .htaccess, but that doesn’t always work (it hinges on ALLOW OVERRIDES being set to something other than NONE, I believe).

    Keep that in mind. Sometimes, the only valid solution is to change your host.

  18. Hi David,

    I’m trying this right now. Somehow from php.ini it’s already 512M. In wp_config.php I also put define('WP_MEMORY_LIMIT', '512M'); but somehow it keep getting 256M.

    I decided to use the ini_set('memory_limit','1024M'); in my php file to see if it has any improvement. So far it’s not breaking due to memory limit yet.

    So thank very much for pointing this out.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!

Recently on David Walsh Blog

  • OSCON Portland:  Conference  Discount!

    O'Reilly puts on the best web industry conferences in the world.  These conferences include Fluent Conference, Velocity Conference, and the upcoming OSCON in Portland, Oregon from July 20-24.  Open Source Convention (OSCON) is a conference that focuses specifically on open source developers and the tools and possibilities...

  • Follow Redirects with cURL

    I love playing around with cURL. There's something about loading websites via command line that makes me feel like some type of smug hacker, just like tweeting from command line does. I recently cURL'd the Google homepage and saw the following: I found it weird that Google...

  • Developers Have WordPress, Amateurs Have Squarespace, Professional Designers Have the NEW Webydo!

    Web design platforms have traditionally come in one of two varieties. There are the solutions like WordPress and Drupal that are incredibly powerful, but an understanding of web development and coding is required to be able to use those platforms effectively. On the other side of the...

  • Chris Coyierâs Favorite CodePen Demos II

    Hey everyone! Before we get started, I just want to say it’s damn hard to pick this few favorites on CodePen. Not because, as a co-founder of CodePen, I feel like a dad picking which kid he likes best (RUDE). But because there is just so...

  • GSAP + SVG For Power Users: Motion Along A Path

    Now that the GreenSock API is picking up steam, there are many tutorials and Getting Started guides out there to provide good introductions to the library, not to mention GreenSock’s own Forum and Documentation. This article isn’t intended for beginners, but rather a...