2013-05-07 82 views
1

的Moodle exausting內存這是我使用一個共享的主機提供商的Moodle的某些特徵得到的錯誤:提供給PHP

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to 
allocate 76 bytes) in /home/myusername/public_html/lib/moodlelib.php on line 8071 

首先,我認爲PHP的內存限制定得太低,但似乎64MB完全可以接受...... Moodle是如此的渴望記憶,它需要的不僅僅是這些?

如果是這種情況,並考慮到我使用的是共享主機,並且它很可能不會增加僅限我的內存限制,我該如何解決它?

我正在使用moodle 2.4.3。

+0

您是否嘗試過調試以查看您是否陷入了某種無限循環? – 2013-05-07 23:32:17

+0

消息顯示過於頻繁,使用的是非常不同的moodle功能,所以我認爲不是這樣。 php文件和行號並不總是相同的。 – 2013-05-07 23:36:35

+0

我不希望行號總是相同的,但我猜想這些行號可能都在代碼的一些常見部分內,您試圖將大量數據存儲在內存中。 – 2013-05-07 23:39:25

回答

0

64MB似乎完全可以接受...是否moodle如此內存飢渴,以至於 會需要更多?

總之:是的!

我們曾經有同樣的問題。我們的php.inimemory_limit設置已設置爲256M很長一段時間。 (我們目前使用的是Moodle 2.6,但是如果內存服務的話,我們看到這個問題有2.1或2.2)。

當然,Moodle的使用會隨着內存的使用而變化,但是我們一直在增加32Mb的設置,直到問題出現離開了。 (我們運行我們自己的服務器,因此添加物理內存是一件容易的事。)

0

Moodle提供了一個提高內存限制的功能。 如果您無權訪問php.ini文件,則可以配置Moodle來執行此操作。

編輯moodle根目錄下的config.php文件。 將 raise_memory_limit(MEMORY_STANDARD);raise_memory_limit(MEMORY_EXTRA);添加到該文件的末尾(某處在require_once([...]setup.php');之後)。