如何修改PHP的memory_limit限制
如何修改PHP的memory_limit限制
在运⾏PHP程序,通常会遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的错误, 这个意味着PHP脚本使⽤了过多的内存,并超出了系统对其设置的允许最⼤内存。解决这个问题,⾸先需要查看你的程序是否分配了过多的内存,在程序没有问题的情况下,你可以通过⼀下⽅法来增加PHP的内存限制(memory_limit)。
检查php的内存限制值
为了查看这个值,你需要建⽴⼀个空的php⽂件,⽐如view-php-info.php。然后将⼀下代码贴到⾥⾯。
<?php phpinfo(); ?>
将这个脚本放到你的上,然后在浏览器中调⽤它。这时你可以看到你的PHP环境配置的信息,其中有⼀部分是关于"memory_limit"的, 如下图:
view-php-memory-limit
注:你可以⽤这种⽅法来查看php的其他参数设置,不仅仅是memory_limit
memory_limit应该设为多少?
这个完全依赖于你的应⽤的要求。⽐如Wordpress,运⾏起核⼼代码需要32MB。Drupal 6则要求这个值最⼩为16MB,并推荐设置为
32MB。如果你⼜安装不少的插件(plugins),尤其是那些要进⾏图像处理的模块,那么你可能需要128MB或更⾼的内存。
如何设置memory_limit
⽅法1: php.ini
最简单或常⽤的⽅法是修改php.ini
1. ⾸先到对你的⽹站⽣效的php.ini⽂件
由于有多个地⽅都可以设置php的参数,到正确的配置⽂件,并进⾏更改是⾸先要做的⼀步。如果你上⾯的⽅法建⽴了php⽂件来查看其配置参数,则你可以到"Loaded Configuration File"这⼀项,以下是个例⼦:
php-ini-location
对于Linux⽤户,你可以通过执⾏"php -i | grep Loaded Configuration File"来到对应的配置⽂件。⽽Windows⽤户,你可以尝试修改你的php安装⽬录下的php.ini。
php如何运行代码2. 编辑php.ini
在php.ini中,到"memory_limit"这⼀项,如果没有,你可以在⽂件的尾部⾃⼰增加这个参数。以下是⼀些设置范例
memory_limit = 128M ; 可以将128M改为任何你想设置的值
保存⽂件
3. 重启web 服务器
如果是web服务器使⽤Apache, 则执⾏:
httpd restart
有些情况下,你可能不被允许私修改php.ini。⽐如如果你购买了服务,但是你的服务商确禁⽌你修改这个⽂件。那么,你可以需要考虑⽤其他⽅法来增加memory_limit的值。
⽅法2: .htaccess
说明: 这种⽅法只有在php以Apache模块来执⾏时才⽣效.
在你的⽹站的根⽬录下到".htaccess"⽂件,如果没有,可以⾃⼰创建⼀个。然后把以下配置放⼊其中
php_value memory_limit 128M ; 可以将128M改为任何你想设置的值
⽅法3: 运⾏时修改php的内存设置
在你的php代码中增加以下命令⾏即可。
ini_set('memory_limit', '128M');
memory_limit修改失败
如果你使⽤虚拟主机,有可能会出现memory_limit的值修改失败。这个需要联系你的服务商看怎么处理,通常他们限制了可以设置的最⼤值或者根本就不允许你修改。如果他们的环境真的⽆法满⾜你的要求,那么你可能要考虑换⼀个主机服务商。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。