2013-05-31 35 views
1

我猜有一個非常簡單的解決這個加載,但我找遍了論壇,並設置指南並不能弄明白:本地Django的網站將不會在瀏覽器

我建一個Django/CentOS的-6.3環境上我的本地服務器(使用VirtualBox和Vagrant)。當我用'python manage.py runserver [::]:8000'啓動我的服務器時,它啓動時沒有錯誤。

Validating models... 

0 errors found 
May 31, 2013 - 13:56:15 
Django version 1.5.1, using settings 'mysitename.settings' 
Development server is running at http://[::]:8000/ 
Quit the server with CONTROL-C. 

然而,當我嘗試在我的瀏覽器導航到「http://127.0.0.1:8001」(我建立了從8000端口在我Vagrantfile端口轉發到端口8001),瀏覽器只是掛起5分鐘,直到超時,那麼它會返回以下消息:

> The connection was reset 
> The connection to the server was reset while the page was loading. 
> ... 

即使在關閉本地服務器之後,仍然可以從瀏覽器獲得完全相同的消息。我的電腦顯然認爲這是一個轉發端口,因爲我嘗試的任何其他端口(如8000)會立即返回一個錯誤消息,說明它無法建立與服務器的連接(127.0.0.1:8000)。

關於服務器文件,過去我已經用Django/Ubuntu做了很多類似的設置,並且從來沒有遇到過任何問題,但是Django/CentOS必然會導致這種情況發生。我在我的一個服務器文件中犯了一個錯誤)。我也按照指南在CentOS上設置了Django & PostgreSQL,但無濟於事。我會評論一些我在下面創建/編輯的文件。

如果有人有解決方案,或者甚至有建議在哪裏尋找錯誤,我會非常感激。

+0

下面是我檢查/編輯的服務器文件,以及我已經完成的一些測試,可以幫助揭示當前問題的原因: - 'django.wsgi'(在項目上方的dir中) ) - '/etc/httpd/conf.d'(包含'wsgi.conf') - 在python終端中測試'import django' - 重啓apache和流浪狗 - 創建文件'/ etc/httpd/conf。 d/django.conf'並添加了行WSGIScriptAlias - 在這8行中添加到'/etc/httpd/conf/httpd.conf':(docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi /#basic-configuration) - 重新啓動的Apache和MySQL – jball037

+0

當你執行'python manage.py runserver [: :]:8001'? – karthikr

+0

這也行不通 - 同樣的結果。 – jball037

回答

3

我正在寫這個答案,因爲某些原因,我無法評論。

我有相同的問題。在127.0.0.1:8000上的問題載入頁面

對我來說,應用程序運行在0.0.0.0:8000。

4

主機的「127.0.0.1」與客人的「127.0.0.1」不一樣。默認情況下,命令

python manage.py runserver 

只偵聽來賓的本地主機。你應該可以在vm中測試它(使用「vagrant ssh」登錄)並運行

curl -I http://127.0.0.1:8000/ 

主機作爲不同的IP。從主機訪問開發服務器,你必須啓動它沒有IP限制:

python manage.py runserver 0.0.0.0:8000 

是:

python manage.py runserver [::]:8000 

應該是相同的。但這是IPv6語法AFAIK。你確定「manage.py runserver」命令默認支持IPv6嗎?我從來沒有使用ipv6地址w/django,但看着源(https://github.com/django/django/blob/master/django/core/management/commands/runserver.py)那裏接縫是一個標誌,默認爲False(「--ipv6」)。也許這是「真正的」問題?

問候,

1

對於類似的問題,

此命令工作就像一個魅力對我來說

python manage.py runserver [::]:8001 
0

檢查你的iptables,並停止它。 Ubuntu通常在啓動時不打開iptables。

3

如果您的網絡配置是否正確,並與

蟒蛇manage.py runserver命令你的Django應用0.0.0.0:8000

,你仍然無法從VM主機訪問您的Django應用程序,幾乎當然是防火牆問題。如果你正在運行iptables,上面的解決方案是很好的。

我在Windows 7主機的virtualbox虛擬機上部署了CentOS 7。我不知道這個發行版使用了firewalld,而不是iptables來控制訪問。

如果

PS -ae | grep的防火牆

回報像

602? 00:00:00 firewalld

你的系統運行的是firewalld,而不是iptables。他們不一起跑。

要糾正你的虛擬機,所以你可以從主機訪問你的Django網站上使用的命令:

防火牆-CMD --zone =公共--add端口= 8000/TCP --permanent

防火牆CMD --reload

非常感謝巴勃羅v對於在後「的虛擬機訪問Django的服務器」指出了這一點。

+0

謝謝。真的有幫助。 ++ – gordon33

相關問題