本文主要介绍如果PHP中存在内存限制,该怎么办?有兴趣的朋友可以参考一下,希望对您有所帮助。
昨天,当我在服务器端调试程序时,该网站突然弹出致命错误:允许的内存大小...。当时我很困惑,但是很快就恢复了正常。百度不仅引起了我的好奇心,其原因如下:单个脚本占用了过多的内存。以下是转载的文章。
在运行PHP程序时,通常会遇到错误“致命错误:允许的内存大小为xxxxxx字节已用尽”,这意味着PHP脚本使用了过多的内存,并且超出了系统允许的最大内存。 。要解决此问题,首先需要检查程序是否分配了过多的内存。如果程序没有问题,则可以通过以下方法增加PHP的内存限制(memory_limit)。
检查php内存限制值
要查看此值,您需要创建一个空的php文件,例如view-php-info.php。然后将以下代码粘贴到内部。
将此脚本放在您的PHP主机上,然后在浏览器中调用它。此时,您可以看到PHP环境配置的信息,其中一部分与“ memory_limit”有关,如下所示:
注意:您可以使用此方法来查看php的其他参数设置,而不仅仅是memory_limit
应该设置多少memory_limit?
这完全取决于您的应用程序要求。例如,Wordpress需要32MB才能运行核心代码。 Drupal 6要求该值至少为16MB,建议将其设置为32MB。如果您安装了许多插件(尤其是用于图像处理的模块),则可能需要128MB或更高的内存。
如何设置memory_limit方法1:php.ini
最简单或常用的方法是修改php.ini
首先找到对您的网站有效的php.ini文件
由于在很多地方都可以设置php参数,因此第一步是找到正确的配置文件并进行更改。如果您通过上述方法创建了一个php文件来查看其配置参数,则可以找到“已加载的配置文件”项,以下为示例:
对于Linux用户,可以通过执行“ php -i | grep已加载的配置文件”找到相应的配置文件。对于Windows用户,您可以尝试在php安装目录中修改php.ini。
编辑php.ini
在php.ini中,找到“ memory_limit”项。如果没有,您可以在文件末尾添加此参数。这是一些示例设置
memory_limit = 128M ; 可以将128M改为任何你想设置的值
保存文件
重新启动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的值。您需要联系您的服务提供商以了解如何处理。通常,它们限制可以设置的最大值,或者根本不允许您修改它。如果他们的环境确实不能满足您的要求,那么您可能要考虑改用托管服务提供商。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-332646-1.html