Comment configurer Django sur OpenShift ?[fermé]
Question
J'ai récemment essayé d'exporter un projet Django sur OpenShift, mais sans succès.Les seules solutions que j'ai trouvées étaient des solutions "préconstruites" (telles que https://github.com/openshift/django-example).
J'ai passé quelques heures à essayer de l'adapter à mon projet mais j'ai toujours eu une erreur interne du serveur.
Alors, comment configurer Django sur Openshift ?
La solution
J'ai finalement compris.La première chose à faire est de démarrer une application openshift et d'éditer le fichier setup.py :
rhc app create -a APPNAME -t python-2.6
cd APPNAME
vim setup.py
Vous devez décommenter "install_requires=['Django>=1.3']"
Ensuite vous pouvez vous engager sur le serveur :
git commit -a -m "Initialization"
git push
Par défaut, il installe Django 1.4 mais je pense que vous pouvez choisir une autre version avec les exigences d'installation correctes dans setup.py.Quoi qu'il en soit, vous devrez exécuter la même version de Django sur votre ordinateur et sur le serveur pour ce qui suit.
Créez votre projet Django :
cd wsgi
django-admin.py startproject PROJECTNAME
Ensuite vous devrez éditer le fichier application, remplacer tout le contenu par :
#!/usr/bin/python
import os, sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECTNAME.settings'
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi',
'PROJECTNAME'))
virtenv = os.environ['APPDIR'] + '/virtenv/'
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass
#
# IMPORTANT: Put any additional includes below this line. If placed above this
# line, it's possible required libraries won't be in your searchable path
#
from django.core.handlers import wsgi
application = wsgi.WSGIHandler()
Enfin, vous pouvez valider les modifications :
cd ..
git add .
git commit -a -m "Project Creation"
git push
Vous devriez voir la page d'accueil de Django.Vous pouvez désormais modifier les paramètres et importer vos applications Django sans contenu indésirable