it-swarm.com.de

Installieren einer Django-Site auf GoDaddy

Ich habe noch nie eine Django-Site bereitgestellt. Ich suche gerade, es in meinem GoDaddy-Deluxe-Konto einzurichten. Hat jemand eine Dokumentation, wie man Python und Django auf GoDaddy installiert?

24
Carl W.

Zur zukünftigen Referenz, da ich davon ausgehe, dass Sie weitergezogen sind ...

Es ist möglich, Django für das GoDaddy-Hosting zu verwenden, wobei VirtualEnv empfohlen wird. Python 2.7 ist nativ installiert und funktioniert einwandfrei, obwohl es nicht die Standardversion ist, die ausgeführt werden soll.

  • Aktivieren Sie den SSH-Zugriff auf Ihrer Site.
  • Verwenden Sie das Hosting-Panel, um Ihre ursprüngliche MySQL-Datenbank einzurichten. Es sind keine Einträge erforderlich. Stellen Sie nur sicher, dass sie vorhanden sind, und notieren Sie die Verbindungsinformationen.
  • Laden Sie VirtualEnv.py herunter. Sie erhalten möglicherweise den gesamten Tarball, benötigen jedoch nur die einzelne Datei.
  • Führen Sie "/usr/bin/python2.7 virtualenv.py --system-site-packages your_new_env" aus.
  • Führen Sie 'source your_new_env/bin/enable' aus.
  • "Pip install Django" ausführen
  • Sie können nun die Django-Tutorials direkt mitverfolgen, es sei denn, Sie verwenden keinen Runserver (da bereits ein Webserver läuft). 

Dies funktioniert für mich auf einem Deluxe-Konto, obwohl ich trotzdem jedem empfehlen könnte, der Django definitiv verwenden möchte, um ein alternatives Hosting zu suchen. GoDaddy ist nicht sehr freundlich und ich bin nicht sicher, dass alles weiter funktionieren wird.


EDIT

Mir wurde klar, dass es auch einige Verwirrung geben kann, wenn man Django normalerweise in Apache laufen lässt, ohne die regulären mod_ * -Optionen. Das war mein Ansatz:

  • Erstellen Sie Ihr Django-Projekt außerhalb der HTML-Verzeichnisstruktur. Führen Sie beispielsweise Django-admin in ~/code aus, um ~/code/yoursite zu erstellen
  • Folgen Sie den normalen Projekt- und Datenbankeinstellungen wie in den Django-Tutorials beschrieben.
  • Führen Sie in Ihrer virtuellen Python-Umgebung "pip install flup" aus.
  • Erstellen Sie das folgende Skript "Django_cgi.py" in ~/code (Beachten Sie den Python-Pfad!):

    #!~/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")
    
  • Erstellen oder bearbeiten Sie die HTAccess-Datei in ~/html mit einer der folgenden Varianten:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} !=/mysite.cgi
    RewriteRule ^(.*)$ /mysite.cgi [QSA,L,PT]
    
  • Erstellen Sie schließlich ~/html/mysite.cgi wie folgt:

    #!/bin/sh
    ~/your_new_env/bin/python ~/code/Django_cgi.py 2>&1
    
  • Stellen Sie sicher, dass alles entsprechend modifiziert ist (755)

Dies ist übermäßig vereinfacht, jedoch funktional und sollte dazu führen, dass jede Anfrage nach Seiten oder Dateien an Django weitergeleitet wird.

Der Grund für diesen Runaround besteht darin, dass GoDaddy nur native CGI-Unterstützung für ältere Python-Versionen bietet, die wir nicht verwenden können. Daher müssen wir unsere virtuelle Umgebung verwenden. Das können wir zwar nicht direkt in den CGI-Skripts verwenden, aber wir können zum Glück ein Shell-Skript ausführen und es manuell aufrufen. Die mod_rewrite-Regel stellt lediglich sicher, dass der gesamte Verkehr durch Django geht.

Verweise
Django mit FastCGI
Beginn der Django-Tutorials
VirtualEnv

38
Chris

Ich bin mit dem Setup von GoDaddy nicht besonders vertraut, aber im Allgemeinen können Sie Django nicht für Shared Hosting installieren, sofern dies nicht ausdrücklich unterstützt wird (a la Dreamhost). Wenn also GoDaddy nicht ausdrücklich Django (oder möglicherweise mod_wsgi oder so) in der Dokumentation erwähnt, was unwahrscheinlich ist, können Sie davon ausgehen, dass dies nicht unterstützt wird.

Theoretisch können Sie Python installieren und Django von überall ausführen, wo Sie über Shell-Zugriff verfügen und über ausreichende Berechtigungen verfügen. Sie können Ihre Django-Site jedoch nicht als Teil Ihres Shared Hosting bereitstellen (z. B. auf Port 80 und auf Ihren ausgewählten Hostnamen antworten). weil Sie keinen Zugriff auf die Webserver-Konfiguration haben.

Sie benötigen entweder ein VPS (GoDaddy bietet sie an, ist aber nicht ihr Kerngeschäft; Linode und Rackspace sind andere Optionen) oder einen gemeinsam genutzten Host, der speziell Django (z. B. Dreamhost) unterstützt, oder einen Anwendungshost (Heroku oder Google App Engine). Ich empfehle Heroku persönlich, insbesondere wenn Sie nicht sicher sind, Ihren eigenen Webserver einzurichten und zu warten.

2

Laut Godaddy können sie Python 2.7.2 verwenden, und Sie können programmieren, wenn Sie eine Deluxe-Edition ihres Web-Hostings haben. So wie ich es verstehe, wird Python in dem Moment funktionieren, in dem Sie den Verzeichnispfad Ihrer Python-Installation in der ersten Zeile eingeben: 

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

Wenn ich es jedoch testen wollte, funktioniert es nicht. Ich habe SSH für mein Konto aktiviert. Ich habe versucht, eine Verbindung mit PuTTY herzustellen, und es funktioniert, wenn ich es ausführen. Das Problem ist jedoch, dass die Website einfach nicht angezeigt wird. 

Ich habe versucht, die Version von Python zu überprüfen. Ich habe herausgefunden, dass es Python 2.4.3 ist. Also habe ich versucht, ihr Verzeichnis zu finden. Ich habe festgestellt, dass es sein kann: 

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

Oder 

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

Ich habe jedes Verzeichnis ausprobiert und jede mögliche Syntax geändert. Nichts funktioniert.

Hier ist der Artikel zur Unterstützung von Python: http://support.godaddy.com/help/article/7254/can-i-use-python-272-with-my-hosting-account?locale=de

Entsprechend meiner Beobachtung kann jede der Antworten richtig sein: 

  • Paddy behauptet, dass sie Python unterstützen. Aber nicht die Fähigkeit haben, es zu unterstützen. 
  • Paddy unterstützt Python. Ihre technischen Unterstützer wissen jedoch nicht, wie ihre Server funktionieren.
  • Paddy behauptet, dass sie Python unterstützen. Aber das tun sie wirklich nicht.

Bevor ich jedoch zu den Schlussfolgerungen komme, habe ich die Änderung meines Godaddy Python Servers auf 2.7 beantragt. Ich werde diesen Beitrag aktualisieren, sobald ich es herausgefunden habe.

Update: Godaddy behauptet, dass Sie Python möglicherweise auf Virtual Private Server oder Dedicated Server ausführen können, was meines Erachtens möglich ist, da Sie Ihren eigenen Computer betreiben. Technisch können Sie alles auf Ihrem eigenen Computer installieren. Wenn also Python läuft, kann Django zwar laufen, aber ich bezweifle, dass sie wissen, wie man es unterstützt.

2
Franz Noel

Aus anderen Antworten geht hervor, dass GoDaddy Shared Hosting Django möglicherweise nicht wirklich unterstützt. Bei der Suche nach "Django" im Suchformular wird nichts zurückgegeben. Wenn dies der Fall ist, denke ich, wäre die beste Wette die Verwendung eines angesehenen Django-freundlichen Hosting-Unternehmens, das hier und hier aufgeführt ist.

1
pram

So habe ich es gemacht. 

  1. Erstellen Sie auf einem echten Server (auf den Sie uneingeschränkten Zugriff haben) eine Chroot mit CENTOS 5.8
  2. Installieren Sie dort alle benötigten Pakete, einschließlich sqlite3-devel, einen selbst kompilierten Python 2.7, virtuelle Umgebung usw.
  3. Installieren Sie dort den Django und stellen Sie alles auf.
  4. Schnappschuss der gesamten Chroot-Datei und kopiere sie auf den Computer,
  5. Verwenden Sie zur Ausführung einfach die virtualenv und es funktioniert.

Die Readme-Datei finden Sie hier: https://github.com/lawrencecreates/RHEL5-chroot/blob/master/README Ich habe auch den Code dieses Tools geändert und diesen Code auch verwendet.

0
h4ck3rm1k3