PHP致命错误:耗尽了20971520字节的允许内存大小(尝试分配131072字节)错误和解决方案

时间:2020-01-09 10:41:50  来源:igfitidea点击:

Ubuntu Linux服务器(Apache + PHP5 FastCGI + Lighttpd仅镜像服务器)日志文件中出现以下错误:

PHP Fatal error: Allowed Memory Size of 20971520 Bytes exhausted (tried to allocate 131072 bytes) in /usr/share/mediawiki/includes/OutputHandler.php on line 81
PHP致命错误:在第81行的/usr/share/mediawiki/includes/OutputHandler.php中,耗尽了20971520字节的允许内存大小(试图分配131072字节)。

我该如何解决这个问题?

Ubuntu/Debian PHP5带有16MB的php内存限制。
编辑/etc/php5/cgi/php.ini、/etc/php5/apache2/php.ini和/etc/php5/cli/php.ini文件,运行:

sudo vi /etc/php5/cgi/php.ini
sudo vi /etc/php5/cli/php.ini
sudo vi /etc/php5/apache2/php.ini

设置脚本可能消耗的最大内存量(例如128M):

memory_limit = 128M

保存并关闭文件。
但是,真正的执行者是适用于PHP5的suhosin安全补丁。
编辑/etc/php5/conf.d/suhosin.ini,运行:

sudo vi /etc/php5/conf.d/suhosin.ini

设置允许的内存大小(128M):

suhosin.memory_limit = 128

保存并关闭文件。
请注意,如果找不到/etc/php5/conf.d/suhosin.ini文件,请执行以下命令进行安装,然后执行:

sudo apt-get install php5-suhosin

最后,重新启动Web服务器:

sudo /etc/init.d/apache2 restart

或者

sudo /etc/init.d/lighttpd restart