我有一个几乎新的CPanel安装在64位CentOS5.7上.它在一个带有2G RAM的VPS上。在php.ini文件中,memory_limit=256M。尽管有这些相对较大的限制,但我在做一些简单的事情,比如连接到mysql时,会出现内存不足的错误。我已经多次重新构建Apache和PHP,唯一启用的额外扩展是gd和mysql。
CPanel插件是MailScanner和防火墙。
示例错误:致命错误:内存不足(分配7077888) (尝试分配1966080字节)
我已经检查了代码,没有奇怪的循环或任何东西可以消耗那么多的内存,而且服务器几乎没有负载。(唯一看上去正在使用的是MailScanner)任何检查什么的想法都是有帮助的。
我的php.ini (用phpinfo()验证) max_execution_time = 30 max_input_time = 60 memory_limit = 256M
最初,我们安装了suphp扩展,但是我们甚至无法获得一个简单的phpinfo()页面。一旦我删除了suphp扩展名,非常简单的页面就能工作(只包含()ed其他文件,但大多数其他操作都会导致内存不足的错误。
发布于 2012-02-14 14:55:19
我发现了这个问题,只想发个帖子,以防其他人遇到同样的事情。它最终成为Smarty目录中用于预编译模板的权限问题。显然,如果Smarty没有访问临时目录以进行模板编译的适当权限,它将尝试在内存中完成所有操作,如果页面太大,则会抛出内存不足的错误。在重置template_c和缓存目录上的权限之后,一切都开始正常工作。
发布于 2012-01-30 14:32:44
您确定它正在加载php.ini吗? 1966080字节小于2mb (除非我弄错了)。如果您有命令行访问权限,请运行: php -i _ grep php.ini
它们应该给出指定使用哪个php.ini的行。
https://serverfault.com/questions/355023
复制相似问题