连接到MySQL的PHP​​内存不足

我在64位Centos 5.7上安装了几乎全新的CPanel。 它是在与2G的RAM的VPS。 在php.ini文件中,memory_limit = 256M。 尽pipe有这些相对较大的限制,但我却遇到了像连接到mysql这样的简单事情的内存不足错误。 我已经多次重buildApache和PHP,并且唯一启用的额外扩展是gd和mysql。

CPanel插件是MailScanner和防火墙。

示例错误:致命错误:内存不足(已分配7077888)(试图分配1966080字节)

我已经检查了代码,并没有奇怪的循环或任何可能会消耗大量的内存,并且服务器几乎没有负载。 (只有看起来使用任何CPU的东西是MailScanner)任何想要检查什么都是有帮助的。

我的php.ini(用phpinfo()validation) max_execution_time = 30 max_input_time = 60 memory_limit = 256M

最初我们安装了suphp扩展,但是我们甚至无法获得一个简单的phpinfo()页面。 一旦我删除了suphp扩展,非常简单的页面工作(只包括其他文件的东西,但大多数其他操作引起内存不足的错误。

你确定它正在加载php.ini吗? 1966080字节小于2MB(除非我得到错误)。 如果您有命令行访问权限,请运行:php -i | grep php.ini

他们应该给你指定哪个php.ini正在使用的行。

我发现这个问题,只是想张贴其他人碰到相同的事情。 它最终成为Smarty用于预编译模板的目录中的权限问题。 显然,如果Smarty没有适当的权限访问临时目录进行模板编译,它会尝试在内存中完成所有操作,如果页面过大,则会引发内存不足错误。 重置template_c和caching目录上的权限后,所有内容都开始正常工作。