2011-05-25 41 views
0

我有一個Django項目,它在Apache2和mod_wsgi的臨時服務器上部署,並且工作正常。它使用django註冊應用程序。無法獲得django註冊在nginx + gunicorn下工作

我試圖將我的服務器切換到nginx並運行帶有gunicorn的Django項目。該項目加載正常,除非當我試圖達到/管理和/用戶/註銷(默認是/帳戶與Django註冊)它會給我一個「沒有模塊名爲urls」錯誤。我把頭髮拔出幾個小時。我在urls.py中註釋了註冊url行,然後admin顯示正常,除了它缺少註冊模型。所以管理員只是因爲註冊失敗而失敗。

理想情況下,我想用nginx/gunicorn設置將我的項目推送到生產環境中,但註冊似乎並不想打得很好。我嘗試刪除註冊,從源代碼安裝0.8,刪除,點安裝0.7,沒有任何工作。有效的是停止nginx,然後再次運行apache。所以基本上,除了正在使用的Web服務器類型之外,該項目是未觸及的。

由於在Apache/mod_wsgi下注冊似乎工作正常,我很想試着用這個設置來推動生產......但是我仍然好奇地想知道爲什麼註冊只會在gunicorn中不起作用嘗試。任何幫助,將不勝感激。

+0

你檢查了這個xtine [gunicorn和django項目(沒有應用程序)](http://stackoverflow.com/questions/5375861/gunicorn-and-django-project-no-app)?這可能是一個原因「沒有名爲urls的模塊」。檢查它可能會有所幫助[部署與gunicorn和Nginx的Django項目](http://www.rkblog.rk.edu.pl/w/p/deploying-django-project-gunicorn-and-nginx/) – Bastardo 2011-05-25 07:06:32

回答

1

使用mod_wsgi時,聲音就像你的sys.path設置不同。在部署時遇到一個相當常見的錯誤,因此在運行gunicorn時檢查您的sys.path是一個好的第一步。你在用virtualenv嗎?請確保將gunicorn安裝到您的virtualenv以及django註冊和您可能擁有的任何其他依賴項中。如果您在virtualenv的bin目錄中運行gunicorn腳本,則所有內容都應該可以正常工作。

+0

我認爲這是一個PYTHONPATH問題,所以在我啓動gunicorn的項目文件夾中,我將路徑導出到dist-packages以查看它是否可行。在TemplateError頁面中,它似乎正確地檢查了所有正確的python文件夾。我還沒有嘗試virtualenv,這是我可能會嘗試下一步。 – xtine 2011-05-25 16:03:31

+0

我總是使用(並推薦)[distribute](http://pypi.python.org/pypi/distribute)&[pip](http://www.pip-installer.org/en/latest/)與virtualenv 。試一試,看看它是否有助於緩解你的部署困境。總的來說,這是一個好主意,因爲你可以隔離你的各種項目並避免依賴衝突等。 – zeekay 2011-05-25 16:16:59

+0

[這是一個有用的速成課程。](http://www.saltycrane.com/blog/2009/05/notes-using -pip-and-virtualenv-django /) – zeekay 2011-05-25 16:22:46