Pregunta

Recientemente intenté exportar un proyecto de Django en OpenShift, pero fue infructuoso.Las únicas soluciones que encontré fueron las "prediseñadas" (como https://github.com/openshift/django-example).

Pasé algunas horas intentando adaptarlo a mi proyecto pero siempre recibía un error interno del servidor.

Entonces, ¿cómo configurar Django en OpenShift?

¿Fue útil?

Solución

Finalmente lo resolví.Lo primero que debe hacer es iniciar una aplicación openshift y editar el archivo setup.py:

rhc app create -a APPNAME -t python-2.6
cd APPNAME
vim setup.py

Es necesario descomentar "install_requires=['Django>=1.3']"

Luego puedes comprometerte con el servidor:

git commit -a -m "Initialization"
git push

De forma predeterminada, instala Django 1.4, pero creo que puedes elegir otra versión con los requisitos de instalación correctos en setup.py.De todos modos, tendrás que ejecutar la misma versión de Django en tu computadora y en el servidor para lo siguiente.

Crea tu proyecto Django:

cd wsgi
django-admin.py startproject PROJECTNAME

Luego tendrás que editar el archivo de la aplicación, reemplazar todo el contenido por:

#!/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()

Finalmente, puedes confirmar las modificaciones:

cd ..
git add .
git commit -a -m "Project Creation"
git push

Deberías ver la página de bienvenida de Django.Ahora puedes editar la configuración e importar tus aplicaciones de Django sin contenido no deseado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top