CentOS system.
Summary: changed memory_limit in master and local php.ini and yet no change in the local value for a particular virtual host.
Trying to improve performance, I set the memory_limit to 1024M in /etc/php.ini
phpinfo() shows Master and Local values for other virtual hosts on the server as 1024M. Changing the value in /etc/php.ini changes all values, except one.
One site is stuck with a local value of 256M.
I thought I found the problem: there is a php.ini file (which I didn't know about) in that site's root, and it had
memory_limit = 256M
I changed it to 1024M. Problem solved? No. And now I don't know where to look. Obviously, I've restarted apache (/etc/init.d/httpd restart), and that usually does the trick.
I also turned off APC cache, though I don't think it would cache ini files.
And finally, I tried adding this to the virtual host in httpd.conf:
php_value memory_limit 536870912
(yes, that would be 512MB) And that had no effect whatsoever.
What else could be the problem?
Thanks.
I found the answer. There was a hidden .htaccess file in the site root that was overriding all other values.
It had the line:
I changed it to:
No need to restart apache, the memory limit went up to 1024M immediately.
——————
Also, if you load a
phpinfo()
page in your website root, near the top you can see configuration files affecting PHP. Search “config” and you’ll find a list.I just want to add that there can be another hidden file named
.user.ini
which can set php variables likephp.ini
.The value in
.user.ini
was showing as Local Value even though I tried setting the value inphp.ini
. Here the value set usingphp.ini
was updating the Global Value only and not the Local Value. Changing the value in.user.ini
updated Local Value.This was my issue and it took me hours to identify this. May save some time for some. :)
As another user pointed out, there is also a
.user.ini
which can change the value. CD to your root directory of the project where your phpinfo.php is located.Execute
find -type f -name "*.user.ini"
In my case I got:
So I opened
./.user.ini
and./pub/.user.ini
and changed the value ofmemory_limit
accordingly. Now check if the local value in your phpinfo has changed.If not then you need to search the whole project with:
And change all occurences.