2011-09-10 66 views
1

我正在一個網站上工作正常的現有的wsgi服務器,並罰款與本地dev中的runserver。但是現在我們正在準備將其轉移到新的服務器上,即使兩臺服務器和設置都接近完全相同,也無法使其正常工作。Django:從運行服務器的內存錯誤

在調試過程中,我想火起來的runserver新服務器(只用於測試過程的目的),並得到這樣的錯誤:

TypeError: must be (memory error), not str 

File "/usr/local/lib/python2.7/SocketServer.py", line 225, in serve_forever 
    r, w, e = select.select([self], [], [], poll_interval) 
MemoryError 

顯然,這與新服務器環境中的某種內存限制有關,但我不知道該從哪裏去。我懷疑如果我可以清除這個問題,那麼wsgi進程將開始正常運行。

建議?謝謝。

+0

你的wsgi腳本是否給出同樣的錯誤?當你手動運行它。沒有參數運行manage.py嗎?與任何其他命令,如'synchdb'運行manage.py嗎? – akonsu

+0

處於風險提示明顯 - 是內存最大化? (或者如果它是共享主機,他們是否對內存使用設置了某種硬限制?)當您嘗試運行wsgi進程時,是否會在日誌中看到相同的錯誤?也可以幫助提供有關您的環境的更多細節 – danny

+0

感謝您的回覆。對不起,我應該說這是在cPanel/WHM系統上。下面我回答了我自己的問題。 – shacker

回答

1

這是在一個cPanel/WHM服務器(我們控制WHM,即我們有根)。答案竟然是WHM選項「Shell fork bomb protection」,它防止用戶運行WHM認爲是長時間運行的腳本或可能消耗太多資源的腳本。禁用該選項恢復了我們使用runserver的能力。