Estoy atascado en la implementación de mi aplicación Django en funcionamiento en un servidor PLESK de producción. El proyecto se puede iniciar con éxito como un servidor de desarrollo escribiendo:
httpdocs# cd mysite httpdocs/mysite# source myvenv/bin/activate httpdocs/mysite# export LD_LIBRARY_PATH="/usr/local/lib" httpdocs/mysite# python manage.py runserver <freyt.de>:8000Luego, si apunto el navegador a freyt.de:8000, puedo ver mi aplicación. Bien. En este momento, estoy tratando de llamar a mi aplicación por Pasajero desde Apache. Al verificar con "passenger-config restart-app", parece que se ejecuta, pero cuando curl freyt.de me muestra html con 403 Forbidden. Entonces, asumo que mi aplicación Django no se inicia correctamente.
Esta es mi estructura de carpetas actual:
Ya ajusté algunos temas en PLESK de la siguiente manera:
Servidor web Apache: wsgi está activado
Creé un plan de servicio y lo suscribí con mi dominio freyt.de
En el Plan de servicio en la pestaña "Servidor web", agregué directivas adicionales para HTTP de la siguiente manera.
PassengerEnabled On PassengerAppType wsgi PassengerStartupFile passenger_wsgi.pyEn el Plan de servicio, en "Parámetros de alojamiento", habilité el acceso SSH al shell del servidor: /bin/bash
Para el "Dominio", configuré la raíz del documento en "..httpdocs/public". También agregué en "Apache & nginx Settings" las mismas directivas. (También probé sin, pero no parece tener efecto).
Algunos detalles en Document Root:
Agregué .htaccess en público nuevamente con las mismas directivas (solo para probar). No hay otros archivos en público.
Mi Passenger_wsgi.py contiene, lo que parece estar bien:
import sys, os cwd = os.getcwd() sys.path.append(cwd) sys.path.append(cwd + '/mysite') if sys.version < "2.7.9": os.execl(cwd + "/mysite/myvenv/bin/python", "python3.6", *sys.argv) sys.path.insert(0, cwd + '/mysite/myvenv/bin') sys.path.insert(0, cwd + '/mysite/myvenv/lib/python3.6') #sys.path.insert(0, cwd + '/mysite/myvenv/lib/python3.6/site-packages/django') sys.path.insert(0, cwd + '/mysite/myvenv/lib/python3.6/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings" from django.core.wsgi import get_wsgi_application application = get_wsgi_application() import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') application = get_wsgi_application()Sería genial, si alguien pudiera señalarme en la dirección correcta. Creo que es solo un pequeño error en alguna parte :-) Gracias de antemano.