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

时间:2017-10-13 13:32:08

标签: php codeigniter out-of-memory ini-set

在我的本地主机上,相关过程正常。它基本上是一大堆数字运算。

但是在我的服务器上(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');

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

任何见解都将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

否则,您需要重新编写程序以减少内存使用。 (这是从开发移动到生产时,伤心地说很常见的问题。)

如果您不知道该文件的位置,请查看该文件的一些建议。

Dude, where's my php.ini?