How To Install Django On OVH.net

Cet article explique comment installer django sur les serveurs mutualisés d'ovh.com. Django ne peut fonctionner seulement en mode cgi, donc la performance ne sera pas au rendez-vous. Mais cela conviendra tres bien pour des sites a faible fréquentation.

Voici les détails techniques à la date de publications :
Python : v2.4
Plan ovh.net : 240
Django : Unicode r5489

1. Structure des dossiers

/projects/mysupersiteweb
- django : code source de django, le repertoire django/django
- trunk : code source du project

/www : répertoire www de votre compte
- django.cgi : cgi qui appel django
- media : lien symbolique vers /projects/mysupersiteseb/trunk/media
- .htaccess : cache le cgi pour les url

2. django.cgi

Ce code provient du ticket [1] qui donne diverses solutions pour l'utilisation de django en cgi. Le fichier est accessible en pièce jointe [2].

Il faut rajouter une ligne qui correspond on chemin absolue de /projects/mysupersiteweb. Cette ligne est a rajouter après "import os, sys"

sys.path.append("/YOURHOMEDIRECTORTY/USERNAME/projects/mysupersiteweb")

Il faut également spécifier à Django la location du fichier settings. Cette ligne se trouve a la fin du fichier.

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

Le fichier doit être exécutable : chmod ua+x django.cgi

Vous pouvez également modifier la dernière ligne en cas d'erreur 500. Cela vous permettra d'afficher les éventuelles erreurs de django en cas de problèmes.

try:
run_with_cgi(django.core.handlers.wsgi.WSGIHandler())
except Exception, inst:
print "Content-type: text/html\n\n"
print inst

3. .htaccess

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ django.cgi/$1 [L]

4. settings.py

N'oublier pas de modifier ce fichier en fonction des paramétres fournis par ovh.com pour la connection MySQL ainsi que les chemins absolues pour les templates.

5. Et voila !

Normalement si tous c'est bien passé, vous devriez avoir votre site qui fonctionne.

Remarques

Vous ne devez pas avoir de "print ..." dans votre code, sinon le serveur d'ovh retourne une erreur 500.

Références

[1] http://code.djangoproject.com/ticket/2407
[2] http://code.djangoproject.com/attachment/ticket/2407/django.cgi?format=raw

Comments

Pierre-Jean
3 days after
Merci pour ce tutoriel simple et clair.
Natim
3 months after
Comment peut-on modifier ceci pour l'installer dans le répertoire cgi-bin ?

En effet, dans le répertoire /www même en .cgi ça ne fonctionne pas chez moi (je ne suis pas chez OVH en fait)
leau2001
4 months after
lorsque vous mettez : sys.path.append("/YOURHOMEDIRECTORTY/USERNAME/projects/mysupersiteweb")

entendez vous que c'est le repertoire ou j'ai mis mon instance de mon site sur mon disque dur ?
Thomas
4 months after
fmottet
9 months after
Bonjour,

J'ai essayé de mettre en place django sur OVH sans succés (erreur 500). J'ai comme repertoire sur ftp d'ovh :

- /projects/mysupersiteweb/django/django l'application django suite à l'installation (rep bin, conf, contrib, db...)

- /projects/mysupersiteweb/trunk : mon application avec __init__.py, manage.py, urls.py. Mon application est la premiere application du tutoriel django générée avec django-admin startproject monsite

- /www/.htaccess, qui contient votre exemple

- /www/django.cgi avec permission 755 avec comme ligne modifiée :

# Change this to the directory above your site code.
sys.path.append("/projects/mysupersiteweb")
# Change mysite to the name of your site package
os.environ['DJANGO_SETTINGS_MODULE'] = 'trunk.settings'
try:
run_with_cgi(django.core.handlers.wsgi.WSGIHandler())
except Exception, inst:
print "Content-type: text/html\n\n"
print inst

QU'ai-je fait de mal pour avoir une erreur 500 Internal Server Error ?
Merci de votre aide
leau2001
about 1 year after
Merci pour ce tuto, je me suis permis de le compléter à mon niveau, pour le même objectif : installer django sur OVH.

Add comment











Tags

Promouvoir et soutenir le logiciel libre