這是我第一次使用Django(以及Python),所以在將我的網站部署到Web服務器時我有點困惑。我已經完成了本地開發,現在是時候將我的網站放到生產服務器上。 我有Webuzo CPanel的專用服務器(Red Hat 4.4.4-13 OS),它說我已經安裝了Python(v 2.7),Django(1.6.1)和Apache(2.4.4)。如何將django部署到專用的Web服務器?
當然,我有root權限,所以我登錄到我的服務器,並試圖檢查是否安裝Django的,但這個命令
>>>import django
給了我這個錯誤:
importerror: No module named django.
(雖然Webuzo控制面板說,我已經安裝了Django)。
之後,我設法使用pip安裝Django。所以,現在,我已經安裝了Python和Django(1.6.2)。
我的下一步是使生產服務器上一個新的Django項目只是爲了檢查是否會工作,所以我在我的public_html
文件夾中創建新的目錄,並運行此命令有:
>>> django-admin.py startproject test
# python manage.py runserver
和Django的給了我這個消息:
Validating models...
0 errors found
February 26, 2014 - 00:15:48
Django version 1.6.2, using settings 'test.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
,我已經試圖通過Web瀏覽器來訪問的位置,但一切都沒有發生(事實上,我只帶了網絡文件夾結構)。 PS我試圖將localhost更改爲我的服務器的IP地址和端口:80,但這給了我一個端口已被使用的錯誤。
我已閱讀官方Django文檔,拒絕部署網站到服務器,但我不知道我是否應該與mod_wsgi,mod_fcgi,mod_python和這樣的事情混亂,因爲,正如我所說,我已經有python和django安裝在我的網絡服務器上?
那麼,我應該怎麼做才能在我的web服務器上運行django?
UPDATE
OK,我已經安裝mod_wsgi的,並將此向我的Apache(2.4.4)配置:
WSGIScriptAlias//home/****/public_html/*mysite.com*/testing/testing/wsgi.py
WSGIPythonPath /home/****/public_html/*mysite.com*
<Directory /home/****/public_html/*mysite.com*/testing>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
這是我的文件夾結構:
/home/*****/public_html/mysite.rs:
----------------------------------testing:
-----------------------------------------manage.py
testing:
-------------------------------------------------__init__.py settings.py urls.py wsgi.py
當我訪問mysite.com時仍然沒有任何反應(mysite.com/testing/給我禁止)。難道我做錯了什麼? 我已經筋疲力盡,所以明天我會試試Heroku ...
如果你已經閱讀了文檔,你會知道你應該從不**在生產中使用runserver,並且你需要使用wsgi。 –
你需要對這個話題做更多的閱讀。如果你在專用機器上,mod_wsgi應該是最容易安裝的(mod_wsgi在使用共享主機時並不總是可能的) – pajton
另外,要在使用runserve時訪問該頁面(雖然只是作爲概念驗證,從不在prod中)你應該指定地址爲0.0.0.0來接受任何連接:'python manage.py runserver 0.0.0.0:8000'。由於使用它的另一個網絡服務器,您可能會遇到使用80的問題。如果可用,您需要爲root(sudo)分配它。 – olofom