Come configurare Django su OpenShift?[chiuso]
Domanda
Recentemente ho provato a esportare un progetto Django su OpenShift, ma inutilmente.Le uniche soluzioni che ho trovato erano quelle "precostruite" (come https://github.com/openshift/django-example).
Ho passato alcune ore cercando di adattarlo al mio progetto ma ho sempre avuto un errore interno del server.
Quindi, come configurare django su openshift?
Soluzione
Finalmente l'ho capito.La prima cosa da fare è avviare un'app openshift e modificare setup.py file :
rhc app create -a APPNAME -t python-2.6
cd APPNAME
vim setup.py
È necessario decommentare " install_requires=['Django > =1.3']"
Quindi puoi eseguire il commit sul server :
git commit -a -m "Initialization"
git push
Per impostazione predefinita, installa django 1.4 ma penso che tu possa scegliere un'altra versione con il requisito di installazione corretto in setup.py.Ad ogni modo, dovrai eseguire la stessa versione di django sul tuo computer e sul server per quanto segue.
Crea il tuo progetto django :
cd wsgi
django-admin.py startproject PROJECTNAME
Quindi dovrai modificare l'applicazione del file, sostituire l'intero contenuto con :
#!/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()
Infine, è possibile eseguire il commit delle modifiche :
cd ..
git add .
git commit -a -m "Project Creation"
git push
Dovresti vedere la pagina di benvenuto di django.Ora puoi modificare le impostazioni e importare le tue app django senza contenuti indesiderati