2013-04-23 50 views
0

我在Mac OS X Lion的运行10.7.4,PHP内存限制没有被添加OSX

我有运行PHP和/etc/php.ini中我已经设置了内存限制是1024M

; Maximum amount of memory a script may consume (128MB) 
; http://php.net/memory-limit 
memory_limit = 1024M 

现在,当我运行一个脚本它给了我这个错误

致命错误:用尽268435456个字节允许内存大小(试图分配474610个字节)

这个貌似PHP只有256万字节的内存分配,那么我要求它分配的剩余内存在哪里?

我的想法来解决这个这里

+0

重新启动的Apache? – bestprogrammerintheworld 2013-04-23 06:30:53

+0

你有没有重新启动Apache服务器 – 2013-04-23 06:30:59

+0

是的,我没有,我正在使用sudo apachectl restart – nivanka 2013-04-23 06:32:00

回答

1

我在使用silverstripe CMS没有经验,但我发现这一点: http://www.silverstripe.org/general-questions/show/16355http://www.silverstripe.org/installing-silverstripe/show/20228

也许它可以帮助你在正确的方向。

另一个线索? (约php.ini中) https://discussions.apple.com/thread/2446810?start=0&tstart=0

+0

谢谢,我在发布问题之前真的发现了这两个问题,我的本地主机是OSX机器。但是当我用phpinfo()运行一个文件时,这很奇怪;在那里它给我1024作为内存限制。但是运行CMS时会出现错误 – nivanka 2013-04-23 06:41:21

+0

在Windows中,php.ini可能位于硬盘上的多个位置。也许与Mac相似?你确定你已经改变了正确的php.ini吗? – bestprogrammerintheworld 2013-04-23 06:46:32

+0

我解决了,在代码库中有一个ini_set谢谢你的所有帮助 – nivanka 2013-04-23 06:59:56

1

设置你的内存限制为-1

memory_limit = -1 
+0

那会有什么好处呢? – nivanka 2013-04-23 06:32:41

+0

我认为chandresh_cool意思是'memory_limit = - 1' (http://php.net/manual/en/ini.core.php#ini.memory-limit) – 2013-04-23 06:34:31

+0

@ThierryMarianne这是真的 – 2013-04-23 06:35:10

1

当我似乎不匹配的php.ini的行为预期的错误,我(的第一件事,重新启动服务器,已经提到过)的第二件事是检查我编辑了正确的php.ini文件。尝试在页面中使用phpinfo(),确保您正在编辑的php.ini文件确实是根据设置正在使用的文件。

1

确保您的Web服务器正在加载corect php.ini文件。您可以通过在开头phpinfo()处准备一个具有以下函数调用的测试php文件来检查该文件。确保字段Loaded Configuration File与您正在编辑的文件的路径完全相同对您来说非常重要。另外,如果您尝试在此处使用快捷方式,并尝试从PHP CLI读取所提到的配置选项的值,则可能会让您陷入更多麻烦。在许多操作系统中,本地Web服务器使用的PHP CLI和PHP解释器使用不同的配置文件。这意味着在PHP CLI中运行的phpinfo()的输出可能与通过Web服务器调用时不同。