Introducción
En este tutorial, aprenderemos a ejecutar una aplicación Python Django en servidores de Hetzner Webhosting o Managed Server. Django es un framework web de Python. Por defecto, el framework se ejecuta en WSGI (la interfaz entre el servidor web y la aplicación), pero mod_wsgi no está disponible en un servidor Apache administrado. Sin embargo, existen varias maneras de convertir WSGI a otras interfaces compatibles.
Requisitos previos
- Alojamiento web con soporte SSH (versión 9 o superior) o servidor administrado con acceso SSH habilitado.
Paso 1 – Instalar dependencias
Paso 1.1 – Instalar y activar virtualenv
pip3 install --break-system-packages virtualenv mkdir /usr/home/holu/virtualenvs python3 -m virtualenv /usr/home/holu/virtualenvs/example_com . /usr/home/holu/virtualenvs/example_com/bin/activatePaso 1.2 – Instalación de Django
pip install djangoPaso 1.3 – Instalar Flup (opcional, necesario para FastCGI)
pip install flupPaso 2: Crear y configurar el proyecto Django
Paso 2.1 – Iniciar el proyecto
mkdir /usr/home/holu/djangoprojects env -C "/usr/home/holu/djangoprojects" django-admin startproject example_comPaso 2.2 – Configuración del proyecto
Todos los dominios solicitados a la variable HOSTALES PERMITIDOS Añadelo para hacerlo accesible.
vim /home/holu/djangoprojects/example_com/example_com/settings.pyAl golpear I Vaya a “Modo de importación” y agregue todos los dominios solicitados:
ALLOWED_HOSTS = ['example.com']Al golpear Esc Regrese al "modo de comando" y :wq Entrar para guardar y salir.
Paso 3: Preparar la raíz del documento del servidor web
Cree un directorio de sitio web vacío y cambie la raíz del documento en konsoleH.
mkdir -p /usr/home/holu/public_html/example_comOpción 1 – FastCGI
Crear .htaccess
vim /usr/home/holu/public_html/example_com/.htaccessAl golpear I Vaya a “Modo de importación” e ingrese el siguiente contenido:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.fcgi/$1 [QSA,L]
</IfModule>Al golpear Esc Regrese al "modo de comando" y :wq Entrar para guardar y salir.
Crear un script .fcgi
vim /usr/home/holu/public_html/example_com/djangoapp.fcgi#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
WSGIServer(WSGIHandler()).run()Establecer el permiso de ejecución para el propietario:
chmod 744 /usr/home/holu/public_html/example_com/djangoapp.fcgiOpción 2 – CGI
Crear .htaccess
vim /usr/home/holu/public_html/example_com/.htaccessAl golpear I Vaya a “Modo de importación” e ingrese el siguiente contenido:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.cgi/$1 [QSA,L]
</IfModule>Al golpear Esc Regrese al "modo de comando" y :wq Entrar para guardar y salir.
Creando un script .cgi
vim /usr/home/holu/public_html/example_com/djangoapp.cgi#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
import wsgiref.handlers
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
wsgiref.handlers.CGIHandler().run(WSGIHandler())Establecer el permiso de ejecución para el propietario:
chmod 744 /usr/home/holu/public_html/example_com/djangoapp.cgiPaso 4 – Prueba
Para probar, visita tu dominio. Deberías ver algo como la imagen a continuación:
Resultado
Ahora puedes implementar tus aplicaciones Django en un sistema operativo administrado.










