2011-02-23 56 views
7

我開始使用Django教程,並遇到了一個問題。在我通常的域名上創建了示例「mysite」後,我希望能夠在瀏覽器中顯示它。本教程將我指向http://127.0.0.1:8000。但是,這不起作用,因爲我正在遠程執行此操作。遠程服務器上的Django教程:如何在瀏覽器中查看?

[背景資料]

我做了什麼,顯然是成功的,是 django-admin.py startproject命令mysite的 (含四個文件創建的mysite目錄) 蟒蛇manage.py runserver命令 (驗證模型.. 。找到0個錯誤等)

絕對路徑是 /家/ toewsweb /的public_html/pythonlab/mysite的 我應該能夠使用我的瀏覽器,使這件事有什麼網址?

我也把mysite的在 /家庭/ toewsweb/mysite的(因爲它不應該在可公開訪問的目錄中去) 我應該能夠在這種情況下使用什麼網址?

這是一個虛擬私人服務器,所以我可以訪問httpd.conf。我已經下載並安裝了mod_wsgi並將其添加到Apache配置中。我實際上是用/ home/toewsweb/public_html/pythonlab/mysite的DocumentRoot設置了一個子域;但是,當我將瀏覽器指向該子域時,我只是獲取目錄列表。

[/背景資料]

現在,我只是想知道如何查看什麼,我在我的瀏覽器工作。

謝謝!

回答

12

爲了開發目的,不需要搞亂配置WSGI(儘管知道這一點很有用,因爲您需要爲生產做好準備)。剛開始開發服務器,使其偵聽到外部端口:

./manage.py runserver 0:8000 

這綁定到外部IP地址,所以現在你可以在該服務器上通過8000端口訪問你的Django網站:

http://whatever.my.ip.is:8000 
+0

非常好。我仍然想要對WSGI進行排序,但是這使我得以進行開發。謝謝,丹尼爾! – Rick 2011-02-24 20:08:09

0

您需要在VirtualHost中設置apache WSGIScriptAlias指令以正確加載python和您的網站。 Django's docs對你需要做什麼有很好的解釋。

基本配置

一旦你得到了mod_wsgi的安裝和激活,編輯httpd.conf文件,並添加:

WSGIScriptAlias//path/to/mysite/apache/django.wsgi 

上面的第一位是url要被服務您的應用程序位於(/表示根URL),第二個位置是系統中的「WSGI文件」的位置 - 請參見下文 - 通常位於項目內部。這告訴Apache使用由該文件定義的WSGI應用程序在給定URL下面提供任何請求。

下一步,我們將需要真正創建這個WSGI應用,使創建WSGIScriptAlias的第二部分中提到的文件,並添加:

import os 
import sys 

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

如果你的項目是不是在你的PYTHONPATH默認情況下,您可以添加:

path = '/path/to/mysite' 
if path not in sys.path: 
    sys.path.append(path) 

正好在import sys行的下面,將項目放在路徑上。請記住用你正確的設置文件替換'mysite.settings',用你自己的項目位置替換'/ path/to/mysite'。

OR

另一種選擇是運行開發服務器所以它的入店外部像這樣:

python manage.py runserver 0.0.0.0:80 

但請切勿使用這種生產。開發服務器是單線程的,並沒有進行安全審計。

+0

謝謝。我必須越來越接近這一點。我之前安裝了mod_wsgi並在目錄中設置了django.wsgi文件,並且我已將WSGIScriptAlias/mysite//home/toewsweb/mysite/django.wsgi添加到VirtualHost塊。但是,當我將瀏覽器指向子域名時,我繼續獲取目錄列表。我猜python沒有被加載,或者什麼。它從shell提示符下正常工作。 – Rick 2011-02-24 00:19:30

相關問題