PHP : settings memory_limits > 1024M does not work

扶醉桌前 提交于 2019-12-28 01:55:10

问题


For bads reasons I need to set memory_limits higher than 1G for a directory, but on my PHP 5.2.17 on Lenny server when I put for example 2048M I get only the php.ini default value (256M).

PHP run as an apache module, phpinfo give us (for the directory)

memory_limit    1024M   256M
suhosin.memory_limit    0   0

Is there a limitation due to apache module, or PHP conf? I know the server only have 4G of RAM, it's just a special script.


回答1:


How are you trying to set the memory limit? phpinfo() shows current PHP reserved memory limit, this is what is available due to php.ini having that set as a memory limit

Writing this to Apache .htaccess in your script directory might work, if your server supports setting PHP commands through .htaccess:

php_value memory_limit 2048M

Since it may be possible that .htaccess commands for setting PHP values are turned off. Then you can also try this from PHP code:

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

If this doesn't work and .htaccess also doesn't work, then you need to contact server administrators.




回答2:


I had this same issue where I needed my PHP script to use 4 GBs of RAM. The reason doesn't matter. The goal was to set a 4 GB limit in PHP.

The initial idea was to use ini_set('memory_limit', '4096M'); but I found that this didn't work. I have no idea how or why to be honest, but that wasn't important to me at the time. I'm on a system with 32 GBs of RAM, it has to be possible.

I found that setting a limit 1 MB less acually worked, it's a solution that worked for me.

ini_set('memory_limit', '4095M'); // 4 GBs minus 1 MB

Edit Nov '16: Actually, I've never really played with it before but I've noticed on my system that this value seems to completely remove all memory limits for me. I'm able to use as much RAM as my system possibly provides.




回答3:


ini_set("memory_limit",-1);

This should normally remove limits




回答4:


As describe here : http://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit

Suhosin will not let you set a value greater than the one the script started with.

If you set the suhosin.memory_limit to 2048M then you'll be able to increase your memory usage.



来源:https://stackoverflow.com/questions/9276212/php-settings-memory-limits-1024m-does-not-work

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!