web-dev-qa-db-fra.com

Installer un site Django sur GoDaddy

Je n'ai jamais déployé de site Django auparavant. Je cherche actuellement à l'installer dans mon compte GoDaddy Deluxe. Quelqu'un at-il une documentation sur la manière d’installer Python et Django sur GoDaddy?

24
Carl W.

Pour référence future, je suppose que vous êtes passé à autre chose ...

Il est possible d'utiliser Django sur un hébergement GoDaddy, en utilisant VirtualEnv comme ils le recommandent. Python 2.7 est installé en mode natif et fonctionne correctement, bien que ce ne soit pas la version par défaut à exécuter.

  • Activer l'accès SSH sur votre site.
  • Utilisez le panneau d’hébergement pour configurer votre base de données MySQL initiale. Il n'a pas besoin d'entrées, assurez-vous simplement qu'il existe et notez les informations de connexion.
  • SSH dans, téléchargez VirtualEnv.py. Vous pouvez obtenir la totalité de l'archive, mais vous n'avez besoin que d'un seul fichier.
  • Exécutez '/usr/bin/python2.7 virtualenv.py --system-site-packages votre_new_env'
  • Exécutez 'source your_new_env/bin/activate'
  • Exécutez 'pip install Django'
  • Vous pouvez maintenant suivre les didacticiels Django directement, sauf bien sûr que vous n'utilisez pas le serveur d'exécution (car vous avez déjà un serveur Web en cours d'exécution). 

Cela fonctionne pour moi sur un compte deluxe, bien que je recommande tout de même à quiconque souhaite utiliser Django de rechercher un hébergement alternatif. GoDaddy n’est pas très sympathique et je ne suis pas sûr que tout continuera à fonctionner.


MODIFIER

J'ai réalisé qu'il pouvait aussi y avoir une certaine confusion dans la manière de faire fonctionner Django normalement dans Apache, sans les options habituelles mod_ *. C'était mon approche:

  • Créez votre projet Django quelque part en dehors de la structure de répertoires html. Par exemple, lancez Django-admin dans ~/code pour créer ~/code/yoursite
  • Suivez la configuration normale du projet et de la base de données, comme décrit dans les didacticiels Django.
  • À partir de votre environnement virtuel Python, exécutez «pip install flup».
  • Créez le script suivant 'Django_cgi.py' dans ~/code (Notez le chemin du 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")
    
  • Dans ~/html, créez ou éditez le fichier .htaccess avec une variante du suivant:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} !=/mysite.cgi
    RewriteRule ^(.*)$ /mysite.cgi [QSA,L,PT]
    
  • Enfin, créez ~/html/mysite.cgi comme suit:

    #!/bin/sh
    ~/your_new_env/bin/python ~/code/Django_cgi.py 2>&1
    
  • Assurez-vous que tout est chmodé correctement (755)

C’est trop simplifié, mais fonctionnel, et chaque demande de n'importe quelle page ou fichier devrait être transmise à Django.

La raison de cette contournement est que GoDaddy fournit uniquement un support CGI natif pour les anciennes versions de Python que nous ne pouvons pas utiliser. Nous devons donc utiliser notre environnement virtuel. Bien que nous ne puissions pas utiliser cela directement dans les scripts CGI, nous pouvons heureusement exécuter un script Shell et l'invoquer manuellement. La règle mod_rewrite garantit simplement que tout le trafic passe par Django.

Références
Django avec FastCGI
Début des didacticiels Django
VirtualEnv

38
Chris

Je ne connais pas spécifiquement la configuration de GoDaddy, mais en général, vous ne pouvez pas installer Django sur un hébergement partagé à moins que ce ne soit spécifiquement pris en charge (à la Dreamhost). Donc, à moins que GoDaddy ne mentionne spécifiquement Django (ou éventuellement mod_wsgi ou quelque chose) dans sa documentation, ce qui est peu probable, vous pouvez supposer que cela n'est pas pris en charge.

Théoriquement, vous pouvez installer Python et exécuter Django à partir de n’importe où vous avez un accès Shell et des autorisations suffisantes, mais vous ne serez pas en mesure de servir votre site Django dans le cadre de votre hébergement partagé (par exemple, sur le port 80 et en répondant au nom d’hôte sélectionné) parce que vous n'avez pas accès à la configuration du serveur Web.

Vous aurez besoin soit d'un VPS (que GoDaddy leur propose, mais ce n'est pas leur activité principale; Linode et Rackspace sont d'autres options), soit d'un hôte partagé prenant spécifiquement en charge Django (par exemple, Dreamhost), ou d'un hôte d'application (Heroku ou Google App Engine). Je recommande personnellement Heroku, surtout si vous n’êtes pas sûr de pouvoir configurer et maintenir votre propre serveur Web.

2
Andrew Gorcester

Selon Godaddy, ils peuvent utiliser Python 2.7.2, et vous pouvez programmer si vous avez une édition deluxe de leur hébergement Web. Si j'ai bien compris, python fonctionnera au moment où vous tapez l'emplacement du répertoire de votre installation python sur la première ligne: 

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

Mais, quand j'ai essayé de le tester, cela ne fonctionnait pas. J'ai activé SSH sur mon compte. J'ai essayé de me connecter à PuTTY, et ça marche si je le lance. Mais le problème est que le site ne s'affiche tout simplement pas. 

J'ai essayé de vérifier quelle était la version de Python. J'ai découvert qu'il s'agissait de Python 2.4.3. Alors, j'ai essayé de localiser leur répertoire. J'ai trouvé que ça peut être: 

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

Ou 

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

J'ai essayé tous les répertoires et changé toutes les syntaxes possibles. Rien ne fonctionne.

Voici l'article sur la prise en charge de Python: http://support.godaddy.com/help/article/7254/can-i-use-python-272-with-my-hosting-account?locale= en

Donc, l'une ou l'autre des réponses peut être correcte, selon mon observation: 

  • Godaddy affirme qu'ils soutiennent Python. Mais ne pas avoir la capacité de le supporter. 
  • Godaddy soutient Python. Mais leurs supports techniques ne savent pas comment leurs serveurs fonctionnent.
  • Godaddy affirme qu'ils soutiennent Python. Mais ils ne le font vraiment pas.

Mais avant de tirer les conclusions, j’ai demandé le changement de mon serveur Goaddy Python en 2.7. Je mettrai à jour ce post une fois que j'ai découvert.

Mise à jour: Godaddy affirme que vous pourrez peut-être exécuter Python sur un serveur privé virtuel ou un serveur dédié, ce qui est possible, à mon avis, puisque vous utilisez votre propre ordinateur. Techniquement, vous pouvez installer n'importe quoi sur votre propre ordinateur. Donc, si Python fonctionne, Django peut fonctionner, mais je doute qu'ils sachent le supporter.

2
Franz Noel

D'après d'autres réponses, il semble que l'hébergement mutualisé GoDaddy peut ne pas prendre en charge Django. En outre, la recherche sur "Django" dans le formulaire de recherche ne renvoie rien. Si tel est le cas, je pense que votre meilleur choix serait d’utiliser une société d’hébergement réputée, compatible avec Django, répertoriée ici et ici .

1
pram

Voici comment je l'ai fait. 

  1. Créez sur un vrai serveur (celui auquel vous avez un accès complet) un chroot avec CENTOS 5.8
  2. Installez tous les paquets nécessaires ici, y compris sqlite3-devel, un python 2.7 que vous vous compilez, env virtuel, etc.
  3. Installez-y le Django et configurez le tout.
  4. Effectuez un instantané de l'intégralité du chroot et copiez-le sur la machine,
  5. Pour l'exécution, utilisez simplement virtualenv et cela fonctionne.

Voir le readme ici: https://github.com/lawrencecreates/RHEL5-chroot/blob/master/README J'ai également modifié le code de cet outil et c'est ce que j'ai utilisé.

0
h4ck3rm1k3