Remember the old days when your computer would crash because you were running too many applications simultaneously? Well, you might be surprised to know that WordPress can fall victim to the very same thing.
You see, your server may be packed with 4 GB of RAM, but that doesn’t mean that all 4 GB have been allocated to PHP on your account. In fact, most decent hosting providers only allocate 32 MB to PHP under each account. Now, most WordPress installations with a good amount of plugins will run fine under 32 MB, but there’s always a chance that one more plugin or one seemingly innocent admin panel task (like exporting or importing posts) may put you over the edge, and you’ll see either a blank screen or the infamous error which starts off something like “Fatal error: Allowed memory size of 33554432 bytes exhausted.”
If you see a blank screen, refer to WordPress and the White Screen of Death before continuing.
Update: Thanks to Big Dave Zatz for reminding me that if you see this error either suddenly (no specific task was done to cause the error) or frequently, try deactivating all plugins to rule-out a plugin-specific issue and try switching themes to rule-out a theme-specific issue.
If you see the infamous fatal memory error, there are three things that you can do before asking your hosting provider for assistance. Which method you use depends entirely on your server configuration. If one method doesn’t work, try the next. Keep in mind that most hosting providers closely monitor memory overrides and don’t take too kindly to frequent use.
1. If you’re using WordPress 2.9.2 or lower, try adding define('WP_MEMORY_LIMIT', '256M');
to your wp-config.php file. If you’re using WordPress 3.0 or higher, WordPress automatically does this for a variety of tasks, so there’s really no reason to try it in this case.
2. If you can edit or override the system php.ini file, increase the memory limit. For example, memory_limit = 256M
3. If you cannot edit or override the system php.ini file, add php_value memory_limit 256M
to your .htaccess file.
If neither of these work, it’s time to ask your hosting provider to temporarily increase PHP’s memory allocation on your account. Keep in mind that most decent hosting providers allocate 32 MB to PHP under each account, and most decent hosting providers allow users to temporarily increase the memory allocation. If your hosting provider won’t accommodate you, perhaps it’s time to find a new hosting provider.
As always, if you need further assistance, the volunteers in the WordPress Support Forums will be more than happy to help you.
I had this problem for a long time and had a hard time until my host fixed the problem. As you have said none of the solutions given in this post worked, because they were subject to override by my server’s configuration…
If this occurs out of the blue, there are also other things to check… When I started getting it, I was pretty confused because my Twitter widget in the sidebar had never produced that error before. Turns out, my site had been hacked and there was some malicious code injected into the sidebar. So the memory limitation actually prevented my site/db from being hacked further. So maybe a lower limit is actually reasonable… as protection and to help you weed out poorly programmed plugins.
I’m curious…what version of WordPress are you using? It should be quite hack-proof by now.
I was running the current version at the time. Unfortunately, my hosting provider seemed to have some insecurities between shared accounts which made me vulnerable from the inside.
Thanks for reminding me about that! I’ve made a tiny update to the post about potential plugin or theme issues.
I don’t know how it slipped my mind. Perhaps I’m having a fatal memory error. . . 🙂
Thanks for putting this together James. Since WP 3.0 is out, memory seems to be more and more a topic.
Popular suhosin can be a player in the game as well. I’ve collected some information in my post: Mysteries about the WordPress Memory Limit. And I created a patch that allows you to set the maxmimum memory by a constant.
Thanks for the article; this is a fairly common issue and whilst I knew overriding the php.ini file, I wasn’t aware this was possible to do via the .htaccess file.
Also you make a good point about switching hosts if they won’t help you out after the other options have been tried. One of my first hosts were a major overseller and in the end I had to move because none of my dynamic sites were working properly.
The fatal memory error in WordPress can be a sheep in wolf’s clothing. Depending on the plug-ins activated at the time one attempts to up-load, up-date or otherwise change their administrative controls, the noted error can be understood as a warning sign of a conflict with installed plug-ins and attempted changes/additions. The problem is not always your host’s low server memory allocation.
I have experienced the memory error on numerous occasions on numerous sites. Simple deactivation of currently installed plug-ins and then performing the same process that erred out has worked every time. Subsequent re-activation of the plug-ins has been unproblematic. A number of useful plug-ins that otherwise perform wonderfully have triggered the error message. [Naming those plug-ins here would serve no useful purpose; some readers might assume inherent errors in the plug-ins and that would be misleading and uselessly detrimental.]
Note: The plug-in conflict is by no means the only vehicle to arrive at the error message. This has been my experience only.
Has this problem but dealt with by wordpress? I’ve never experienced it. I regularly get a page that says it cannot connect with the server. Probably should change hosting provider for that one.
Well, it’s not a problem that WordPress can deal with. More than likely, the problem is caused by either an overzealous plugin or theme, or severe resource restrictions from your hosting provider.
Either way, it sounds like you have a great hosting provider since you’ve never seen this before, but then again the connection failures make me think otherwise.