Preparando el Servidor
Conéctese al servidor vía SSH y aplique los pasos según la distribución de Linux instalada en este caso usaremos la distribución de Ubuntu y Debian:
Ubuntu y Debian
1.- Instale Python 3:
apt install python3 python-is-python3
2.- Descargue e instale el administrador de paquetes de Python desde el sitio web oficial:
wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py
3.- Instale el paquete virtualenv para Python para separar el entorno de la aplicación:
python3 -m pip install virtualenv
4.- Instale Phusion Passenger, que se utilizará para ejecutar la aplicación:
plesk installer --select-release-current --install-component passenger
6.- Habilite el módulo de passenger en Herramientas y configuración > Servidor web Apache (en caso de que Apache deba servir la aplicación)
7.- Cree un nuevo plan de servicio en Planes de servicio para preconfigurar el servidor web
8.- Establezca la siguiente configuración en la pestaña Servidor web :
Para que Apache atienda la aplicación:
- Habilite el modo Proxy , si está presente
- Configure las siguientes directivas adicionales de Apache (para HTTP y HTTPS) para habilitar el procesamiento:
PassengerEnabled On
Para que nginx proporcione la aplicación:
- Deshabilitar el modo proxy
- Configure las siguientes directivas nginx adicionales para habilitar el procesamiento:
passenger_enabled on; passenger_app_type wsgi; passenger_startup_file passenger_wsgi.py;
9.- Establezca la siguiente configuración en la pestaña Parámetros de alojamiento :
Habilite el acceso SSH al shell del servidor bajo el usuario del sistema de la suscripción. Establecer shell en /bin/bash.
10.- Guarde el plan de servicio y utilícelo en suscripciones que deberían tener aplicaciones Python instaladas.
Implementar la aplicación
1.-- Conéctese al servidor a través de SSH como usuario del sistema de la suscripción (esto se puede encontrar en Suscripciones > ejemplo.com > Usuario del sistema) y navegue hasta la raíz del documento.
$ ssh ejemplo@ejemplo.com $ cd ~/httpdocs/
2.- Mueva los archivos existentes al directorio de respaldo en la suscripción, para que no se procesen en lugar de la aplicación:
$ mkdir ~/backup $ mv ~/httpdocs/* ~/backup/
3.- Cree un nuevo entorno virtual para la aplicación Django:
python3 -m virtualenv -p python3 python-app-venv
4.- Ingrese al entorno virtual:
$ source ./python-app-venv/bin/activate
5.- Instale el framework Django y verifique si se puede importar:
(python-app-venv) $ pip install Django (python-app-venv) $ python -c "import django;print(django.get_version())"
6.- Crea un passenger_wsgi.py
archivo usando vi :
(python-app-venv) $ vi ~/httpdocs/passenger_wsgi.py
Agregue el siguiente contenido:
import sys, os ApplicationDirectory = 'djangoProject' ApplicationName = 'djangoProject' VirtualEnvDirectory = 'python-app-venv' VirtualEnv = os.path.join(os.getcwd(), VirtualEnvDirectory, 'bin', 'python') if sys.executable != VirtualEnv: os.execl(VirtualEnv, VirtualEnv, *sys.argv) sys.path.insert(0, os.path.join(os.getcwd(), ApplicationDirectory)) sys.path.insert(0, os.path.join(os.getcwd(), ApplicationDirectory, ApplicationName)) sys.path.insert(0, os.path.join(os.getcwd(), VirtualEnvDirectory, 'bin')) os.chdir(os.path.join(os.getcwd(), ApplicationDirectory)) os.environ.setdefault('DJANGO_SETTINGS_MODULE', ApplicationName + '.settings') from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
Nota: Este archivo describe a Passenger y WSGI cómo iniciar y ejecutar correctamente la aplicación. Aquí se utiliza djangoProject como nombre del proyecto. Debe modificarse al nombre real del proyecto.
7.- Cree la apliacación:
- Crea el proyecto Django predeterminado:
(python-app-venv) $ django-admin startproject djangoProject
- Edite la configuración del proyecto para permitir atender solicitudes desde cualquier host:
(python-app-venv) $ sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = ['*']/" djangoProject/djangoProject/settings.py
- Cree un
tmp
directorio para Passenger y un archivorestart.txt
en él:
(python-app-venv) $ mkdir tmp (python-app-venv) $ touch tmp/restart.txt
Nota: La aplicación de caché de passenger permite respuestas más rápidas. Para aplicar los cambios realizados en el código, se debe crear este archivo: Reiniciando aplicaciones: restart.txt
9.- Navegue a Dominios > ejemplo.com > Configuración de alojamiento y establezca la raíz del documento en httpdocs/djangoProject
Nota: Si la aplicación muestra el error 403, revise que las directivas adicionales de Apache y Nginx del dominio se apliquen desde el Plan de servicio. Si no existen en el dominio, cópielos del Plan de Servicio y aplíquelos directamente en Dominio > ejemplo.com > Directivas adicionales de Apache y Nginx.