site alwaysdata
forum
- Commercial
- Nos offres
- Facturation
- Technique
- Domaines
- Email
- FTP
- SSH
- Bases de données
- Web
- Applications
- Programmes CGI
- PHP
- Python
- Django
- Ruby
- Perl
Python, comme les autres langages proposés par alwaysdata, tourne en FastCGI. Pour utiliser Django sur nos serveurs, il suffit simplement de suivre la section Running Django on a shared-hosting provider with Apache de la documentation officielle de Django.
Concrètement, voici une marche à suivre (parmi d'autres) :
Créez un répertoire public à la racine de votre projet. Dedans, créez un fichier django.fcgi contenant :
public
django.fcgi
#!/usr/bin/python import os, sys sys.path.insert(0, "/home/myaccount/www/") os.chdir('..') os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")
Remplacez le chemin du sys.path.insert par le chemin complet du répertoire dans lequel se trouve votre projet. Enfin, remplacez myproject par le nom de votre projet.
sys.path.insert
myproject
Donnez les droits d'exécution à ce fichier (en SSH : chmod +x django.fcgi)
chmod +x django.fcgi
Toujours dans le répertoire public, créez un fichier .htaccess contenant :
.htaccess
AddHandler fcgid-script .fcgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]
Cette étape n'est nécessaire que si vous utilisez l'interface d'administration de Django.
Toujours dans public, créez un lien symbolique media qui pointe vers les fichiers media de l'admin Django :
media
ln -s /usr/share/python-support/python-django/django/contrib/admin/media/ media
Pour garantir la sécurité de vos fichiers et permettre à l'administration Django de fonctionner, cette étape est nécessaire.
À partir de votre interface d'administration alwaysdata, faites pointer votre sous-domaine vers le répertoire public de votre projet.
Ainsi, si votre projet est dans /home/myaccount/www/myproject et que vous voulez que http://myaccount.alwaysdata.net arrive directement sur votre application, vous devrez modifier le répertoire de destination du sous-domaine myaccount.alwaysdata.net vers /myproject/public (au lieu de / par défaut).
/home/myaccount/www/myproject
http://myaccount.alwaysdata.net
myaccount.alwaysdata.net
/myproject/public
/
Votre arborescence devrait ressembler à quelque chose comme cela :
myproject/ __init__.py manage.py public/ django.fcgi .htaccess media/ settings.py urls.py