2012-09-30 190 views
22

我以前從未部署過Django網站。我目前正在考慮將其設置在我的豪華GoDaddy帳戶中。有沒有人有關於如何在GoDaddy上安裝python和django的文檔?在GoDaddy上安裝django網站

+0

這不是一個好主意...請看看http://openshift.redhat.com –

+1

最好的Python支持是Google App Engine。在我看到使用GAE時,Stackoverflow中有很多Python程序員。我確信Django會運行它。 https://developers.google.com/appengine/articles/django –

+0

Go Daddy Linux共享主機支持Python(但不是經濟級別計劃)。但是Django不支持,因爲mod_wsgi沒有安裝在我們的共享主機環境中。 –

回答

34

以供將來參考,因爲我假定你已經轉移...

有可能使用Django上GoDaddy的託管,使用VIRTUALENV爲他們推薦。 Python 2.7本地安裝並且工作正常,但它不是要運行的默認版本。

  • 在您的網站上啓用SSH訪問。
  • 使用主機面板來設置您的初始MySQL數據庫。它不需要任何條目,只要確保它存在並記下連接信息即可。
  • SSH中,下載VirtualEnv.py。你可能會得到整個tarball,但你只需要單個文件。
  • 運行 '/usr/bin/python2.7 virtualenv.py --system-site-packages中your_new_env'
  • 運行 '源your_new_env /斌/激活'
  • 運行 'PIP安裝Django'
  • 你現在可以直接按照Django的教程,當然除了不使用的runserver(因爲你已經有了一個Web服務器運行)

這爲我工作在一個豪華的帳戶,但我還是會建議任何人誰一定要使用Django尋求替代託管。 GoDaddy不是很友善,我不確定一切都會繼續工作。


編輯

我意識到,也可能是如何獲得的Django在Apache正常運行有些混亂,不正規mod_個*選項。這是我的做法:

  • 在html目錄結構之外的某處創建您的django項目。例如,在〜/ code中運行django-admin來創建〜/ code/yoursite
  • 按照Django教程中描述的正常項目和數據庫設置。
  • 從您的虛擬python環境運行'pip install flup'。
  • 內創建〜/代碼下面的腳本 'django_cgi.py'(注Python路徑!):

    #!~/your_new_env/bin/python 
    import sys, os 
    
    # Add a custom Python path for your project 
    sys.path.insert(0, "/must/be/full/path/to/code/yoursite") 
    
    # Set the DJANGO_SETTINGS_MODULE environment variable. 
    # This should match the name for the project you added to the path above 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'yoursite.settings' 
    
    from django.core.servers.fastcgi import runfastcgi 
    runfastcgi(method="threaded", daemonize="false") 
    
  • 內部〜/ HTML,創建或與一些變種編輯.htaccess文件以下內容:

    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !=/mysite.cgi 
    RewriteRule ^(.*)$ /mysite.cgi [QSA,L,PT] 
    
  • 最後,創建〜/ HTML/mysite的。CGI如下:

    #!/bin/sh 
    ~/your_new_env/bin/python ~/code/django_cgi.py 2>&1 
    
  • 確保一切適當地(755)

這是相對於簡化的但功能,並應導致對任何頁面或文件中的每個請求被chmod'ed冒充在模塊中使用。

原因是GoDaddy只提供原生CGI支持,因爲我們不能使用舊版本的Python,所以我們必須使用我們的虛擬環境。雖然我們不能直接在CGI腳本中使用它,但我們可以幸運地運行一個shell腳本並手動調用它。 mod_rewrite規則只是確保所有流量都通過Django。

參考
Django with FastCGI
Start of Django Tutorials
VirtualEnv

+0

經過了兩天試圖在godaddy上設置django後,這幫了大忙。謝謝 – alok

2

根據Godaddy的說法,他們可以使用Python 2.7.2,並且如果你有他們的虛擬主機的豪華版本,你可以編程。我的理解是,蟒蛇將工作的那一刻,你的第一行上鍵入你的Python安裝的目錄位置:

#!/usr/local/bin/python2.7 

但是,當我試圖對它進行測試,這是行不通的。我在我的帳戶上啓用了SSH。我試圖與膩子連接,如果我運行它,它會起作用。但問題是,該網站並沒有顯示出來。

我試圖檢查Python的版本是什麼。我發現它是Python 2.4.3。所以,我試圖找到他們的目錄。我發現,它可能是:

#!/usr/local/bin/python2.4 

或者

#!/usr/local/bin/python2.4/site.py - (not sure) 

我想盡目錄,改爲每語法可能。什麼都沒有

下面是支持Python的文章: http://support.godaddy.com/help/article/7254/can-i-use-python-272-with-my-hosting-account?locale=en

所以,無論答案可能是正確的,根據我的觀察:

  • GoDaddy的聲稱他們支持Python的。但是沒有能力支持它。
  • Godaddy支持Python。但是,他們的技術支持人員不知道他們的服務器如何工作。
  • Godaddy聲稱他們支持Python。但是,他們確實沒有。

但在得出結論之前,我已要求將我的Godaddy Python服務器更改爲2.7。一旦我發現了,我會更新這篇文章。

更新: GoDaddy的聲稱,你可以到虛擬專用服務器或專用服務器上運行Python,我認爲這是可能的,因爲你運行的是自己的電腦。從技術上講,你可以在你自己的電腦上安裝任何東西。所以,如果Python運行,Django可能會運行,但我懷疑他們是否知道如何支持它。

+0

Python支持不足以實際以可用的方式在Web服務器上部署Django。你可能可以在高編號的端口上爲Django服務,但在大多數情況下,這對你不會有好處。 –

+0

我明白。我的觀點是,如果他們有支持Python的問題。如果是django,還有什麼? –

+0

那很不幸。我註冊了豪華版,因爲我被告知它可以處理Django。時間去尋找新的託管。 –

2

我對GoDaddy的設置並不熟悉,但總的來說,除非特別支持(la Dreamhost),否則不能在共享主機上安裝Django。所以除非GoDaddy在他們的文檔中特別提到了Django(或者可能是mod_wsgi或其他東西),這是不太可能的,你可以認爲它不被支持。

理論上來說,您可以在任何有shell訪問權限和足夠權限的地方安裝Python並運行Django,但是您將無法真正爲您的Django站點提供服務作爲共享主機的一部分(即,在端口80上並響應您選擇的主機名),因爲您無權訪問Web服務器配置。您將需要一個VPS(GoDaddy提供它們,但它不是他們的核心業務; Linode和Rackspace是其他選項),或者是專門支持Django(例如Dreamhost)的共享主機,或者應用程序主機(Heroku或Google App Engine)。我個人推薦Heroku,特別是如果你對建立和維護自己的Web服務器沒有信心。

1

從其他答案看來,GoDaddy共享主機可能並不真正支持Django。另外,在搜索表單中搜索「django」也不會返回任何內容。如果是這樣的話,我認爲你最好的選擇是使用名爲herehere的着名Django友好的託管公司。

0

這是我做到了。

  1. 創建一個真正的服務器上(一個你可以完全訪問)在CentOS一個chroot 5.8
  2. 安裝所有所需的軟件包存在,包括sqlite3的-devel的,你自己編譯一個Python 2.7,虛擬ENV等。
  3. 在那裏安裝django並將其設置完成。
  4. 快照整個chroot並將其複製到機器上,
  5. 對於執行,只需使用virtualenv並且它可以工作。

查看這裏的自述:https://github.com/lawrencecreates/RHEL5-chroot/blob/master/README我也修改了該工具的代碼,它就是我使用的。