Codeigniter:允许的内存大小为 33554432 字节已用尽(已使用 ini_set('memory_limit', '-1'); )

Codeigniter: Allowed memory size of 33554432 bytes exhausted ( already using ini_set('memory_limit', '-1'); )

在我的本地主机上,相关进程运行良好。这基本上是一大堆数字运算。

但是在我的服务器上 (CentOS 5.9 + PHP 5 + MySQL 5) 它给我这个错误:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 80 bytes) in {..}/system/database/drivers/mysql/mysql_result.php on line 147

我已经在 运行 这个函数之前声明了以下内容:

ini_set('memory_limit', '-1');

系统本身有8GB内存。我的本地机器有 12 GB 的内存。不过,我怀疑它需要那么多内存。

如有任何见解,我们将不胜感激。提前致谢!

PHP 在运行它的每个系统上都有一个全局内存限制,它会覆盖您的程序自己的 memory_limit 设置。

这是 memory_limit value in a file called php.ini. 共享主机提供商通常将其设置为 32M 之类的值。这似乎是你的问题。如果您控制服务器,则可以将其设置得更大。

否则您需要重新编写程序以使用更少的内存。 (这是从开发到生产的一个非常普遍的问题,很遗憾。)

如果您不知道文件在哪里,这里有一些关于查找该文件的建议。

Dude, where's my php.ini?