2013-04-23 48 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服務器調用時不同。