🐍 Configurando Apache con Python (WSGI) en SaveinCloud
⚠️ Todas las configuraciones mostradas en este manual son ejemplos simples e hipotéticos. Puede ser necesario realizar adaptaciones según la topología de tu entorno.
Esta guía muestra cómo desplegar una aplicación Flask utilizando Apache con WSGI dentro de la plataforma SaveinCloud.
✅ Requisitos recomendados
Antes de iniciar el despliegue, asegúrate de que el proyecto contenga:
- Un archivo
wsgi.pyconfigurado correctamente; - Un archivo
requirements.txtcon las dependencias de la aplicación.
Parte 1 - Configurando Apache Python en la Topología
🔧 Paso 1 – Montaje de la Topología
Agrega a la capa de aplicación el Apache Python. Ajusta los cloudlets reservados y el límite de escalabilidad según la necesidad de tu proyecto y aplica el cambio.

Opcional: Agrega un NGINX como Load Balancer y/o una base de datos (ej: MariaDB, MySQL).
Si usas NGINX, sigue la documentación específica.

📦 Paso 2 – Métodos de Despliegue de la Aplicación
SaveinCloud ofrece los siguientes métodos de despliegue:
- Archivo local (.zip, .tar, etc.)
- URL externa
- Repositorios Git/SVN
En esta guía, utilizaremos el método por archivo .zip.
Selecciona el nodo Apache Python para realizar el despliegue:

Luego, sube tu proyecto comprimido:

⚠️ El proyecto usado en este ejemplo ya posee los archivos
requirements.txtywsgi.pyconfigurados. De lo contrario, será necesario instalar manualmente las dependencias vía SSH.
📥 Paso 3 – Instalación de Dependencias
Después del despliegue, accede al nodo vía SSH para instalar las dependencias del proyecto dentro de un entorno virtual.
Abre la terminal:

Accede al directorio del proyecto:
cd /var/www/webroot/ROOT
Si NO existe requirements.txt, créalo manualmente:
source venv/bin/activate
pip freeze > requirements.txt
deactivate
Si el proyecto tiene requirements.txt:
mv venv venv-old # Opcional: renomeia a venv antiga
python -m venv venv # Cria nova venv
source venv/bin/activate # Ativa a venv
pip install -r venv-old/requirements.txt
deactivate
Instalación manual de paquetes (si es necesario):
mv venv venv-old
python -m venv venv
source venv/bin/activate
pip install flask pacote2 pacote3
deactivate
⚙️ Paso 4 – Configuración del WSGI (Apache)
Edita el archivo wsgi.conf en el panel de la plataforma para apuntar a la ruta correcta de la aplicación y de la venv.
Sustituye las siguientes líneas:

Nuevas líneas:
WSGIDaemonProcess apache user=apache group=apache processes=2 threads=10 python-path=/var/www/webroot/ROOT/ python-home=/var/www/webroot/ROOT/venv/
ServerRoot "/var/www/webroot/ROOT/"
DocumentRoot "/var/www/webroot/ROOT/"
🧩 Paso 5 – Configurando el Archivo wsgi.py del Proyecto
Accede al archivo wsgi.py dentro del directorio del proyecto.

⚠️ Si el archivo
wsgi.pyno existe, créalo en la raíz del proyecto.
Ejemplo 1:
from app import app as application
if __name__ == "__main__":
app.run()
Ejemplo 2:
import sys
import os
sys.path.insert(0, '/var/www/webroot/ROOT')
from run import app as application
🔎 Paso 6 – Probando la Aplicación
Después de guardar todas las configuraciones:
-
Accede a la URL pública del entorno:

-
Verifica que la aplicación esté funcionando:

Si todo está correcto, tu aplicación Flask estará accesible.
📘 Documentación complementaria:
🛠️ Solución de Problemas
❌ 1. Error 500 al acceder a la aplicación
Causa posible:
- Permisos incorrectos en el directorio o archivos de la aplicación.
- Errores en el código Python (ej:
ImportError,SyntaxError).
Cómo verificar:
Accede a los logs de Apache en la terminal vía SSH:
cat /var/log/httpd/error_log
Soluciones:
- Corrige errores en el código (ej: nombre incorrecto del módulo o función).
- Da permisos adecuados al directorio:
chown -R apache:apache /var/www/webroot/ROOT
chmod -R 755 /var/www/webroot/ROOT
❌ 2. Página en blanco o “Not Found”
Causa posible:
WSGIScriptAliasconfigurado con ruta incorrecta.wsgi.pyestá ausente o mal configurado.
Cómo verificar:
Edita el archivo wsgi.conf y valida la ruta con:
WSGIScriptAlias / /var/www/webroot/ROOT/wsgi.py
Y confirma que wsgi.py contenga:
from app import app as application
❌ 3. Modificación en el código no se actualiza en el navegador
Causa posible:
- Caché del navegador o caché de Apache.
Solución:
-
Intenta reiniciar el nodo de Apache desde la propia plataforma.
-
Limpia la caché del navegador o abre en modo incógnito.
❌ 4. Error: ModuleNotFoundError
Causa posible:
- Entorno virtual (
venv) no está activo correctamente. - Ruta hacia la
venvno fue informada al WSGI.
Solución:
- Verifica que
python-homeesté correcto en elwsgi.conf:WSGIDaemonProcess apache ... python-home=/var/www/webroot/ROOT/venv/ - Asegúrate de que la
venvfue creada y activada correctamente:source venv/bin/activate