
En este artículo se presentará una guía detallada para instalar y configurar los programas Apache, Python y PostgreSQL para asegurar el funcionamiento de un proyecto Django en el sistema operativo MS Windows. Django ya incluye un servidor de desarrollo simplificado para pruebas de código locales, pero para tareas relacionadas con producción se requiere un servidor web más seguro y potente. Configuraremos mod_wsgi para interactuar con nuestro proyecto y configuraremos Apache como puerta al mundo exterior.
Cabe destacar que la instalación y configuración se llevará a cabo en el sistema operativo MS Windows 10 de 32 bits. También, la reacción de 32 bits será universal y funcionará en arquitecturas de 64 bits. Si necesita una instalación de 64 bits, repita los mismos pasos para los distribuidores de programas de 64 bits; el orden de acciones será idéntico.
Como proyecto Django utilizaremos el programa Severcart. Está diseñado para gestionar el movimiento de cartuchos, el seguimiento del equipamiento de impresión y los contratos de suministro y mantenimiento. La instalación de todos los programas y módulos se realizará en el directorio C:severcart. La ubicación no es crítica.
Python
El primer paso es descargar e instalar Python desde el sitio web de Python. Seleccionamos Windows como sistema operativo y la versión de 32 bits. En el momento de escribir este artículo, la versión actual es 3.9.0rc2.
Una vez que haya descargado el archivo de instalación, haga clic derecho sobre el archivo y seleccione "Ejecutar como administrador". Debería ver la pantalla a continuación.

Marque las casillas "Install launcher for all users (recommended)" y "Add Python 3.9 to PATH" y haga clic en "Customize installation".

Marque las casillas "pip", "py launcher", "for all users (requires elevation)" y haga clic en "Next".

Seleccione todos los campos de entrada como en la imagen anterior y haga clic en "Install".

Para asegurarse de que la instalación fue exitosa, abra cmd y escriba python. Si la instalación fue exitosa, debería ver un aviso similar al siguiente.

Instalando mod_wsgi
Descargue el paquete compilado de mod_wsgi desde el sitio
El módulo actúa como un intermediario entre el servidor Apache y el proyecto Django. El paquete más reciente se llamará mod_wsgi-4.7.1-cp39-cp39-win32.whl. Tenga en cuenta que el paquete está compilado para Windows de 32 bits y la versión de CPython 3.9. También es importante destacar que la instalación del módulo pip install mod_wsgi probablemente resultará en un error, ya que se necesitará un compilador de Visual Studio C++ durante el proceso de instalación. Consideramos que instalar todo el compilador solo por un paquete de Python en Windows no es práctico.
Instalamos el módulo utilizando el gestor de paquetes estándar pip en cmd o powershell:
pip install -U mod_wsgi-4.7.1-cp39-cp39-win32.whl

Apache
Descargamos el distribuidor del sitio .
La versión más reciente del servidor web es Apache 2.4.46 win32 VS16. Además, para que el programa funcione, se necesitará tener instalado previamente el paquete "Visual C++ Redistributable for Visual Studio 2019 x86".
Descomprimimos el distribuidor de Apache en el directorio C:severcartApache24, luego cambiamos la línea con el número 37 a la nuestra
Define SRVROOT "C:\/severcart\/Apache24"
Verificamos el funcionamiento de Apache, ejecutando en la línea de comandos
C:\/severcart\/Apache24\/bin> httpd.exe
Como resultado, deberíamos ver en el navegador en la dirección la línea "¡Funciona!".

Instalamos el servicio de Apache, para ello ejecutamos en la línea de comandos como Administrador la instrucción:
C:severcartApache24bin>httpd.exe -k install -n "Apache24"
A continuación, conectaremos el módulo mod_wsgi a Apache. Para hacerlo, ejecutamos en la línea de comandos la instrucción
C:Windowssystem32>mod_wsgi-express module-config
Como resultado, se imprimirán en la salida estándar las líneas:
LoadFile "c:\/severcart\/python\/python39.dll"
LoadModule wsgi_module "c:\/severcart\/python\/lib\/site-packages\/mod_wsgi\/server\/mod_wsgi.cp39-win32.pyd"
WSGIPythonHome "c:\/severcart\/python"
Creamos el archivo C:severcartApache24confextrahttpd-wsgi.conf y copiamos ahí las líneas impresas anteriormente.
Conectamos la nueva configuración al archivo principal httpd.conf
Include conf\/extra\/httpd-wsgi.conf
Guardamos los cambios y reiniciamos los servicios de Apache
Net stop Apache24
Net start Apache24
PostgreSQL
Instalamos PostgreSQL descargado del sitio . La versión actual del producto es 12. Las ventajas de la distribución rusa sobre la canónica están presentes en el mismo sitio.










Las acciones para la instalación están presentadas arriba y no necesitan comentarios. La instalación es extremadamente simple.
Creamos la base de datos en postgres, donde posteriormente se almacenarán las estructuras de datos del proyecto Django
C:severcartpostgresqlbin>psql -h 127.0.0.1 -U postgres -W
CREATE DATABASE severcart WITH ENCODING='UTF8' OWNER=postgres CONNECTION LIMIT=-1 template=template0;

La base de datos ha sido creada. Ahora desplegamos el proyecto Django.
Instalamos la aplicación web
Para ello, descargamos un archivo zip del sitio y descomprimimos en el directorio C:severcartapp

Realizamos cambios en el archivo de configuración principal C:severcartappconfsettings_prod.py para especificar las credenciales de conexión a la base de datos

El diccionario de Python DATABASES contiene las credenciales de conexión a la base de datos. Para más detalles sobre la configuración, lea aquí
Instalamos paquetes de Python necesarios para el funcionamiento de las aplicaciones dentro del proyecto Django
C:severcartapptkinstaller>python install.py

Durante la ejecución del script se inicializarán las tablas de la base de datos, los constraints, los índices y otros elementos, y se solicitará crear un usuario con el que se trabajará en el programa.
Conectamos la aplicación Django al servidor Apache, para lo cual añadimos al archivo de configuración
httpd-wsgi.conf el siguiente texto
Alias /static "c:/severcart/app/static"
Alias /media "c:/severcart/app/media"
# para Apache 2.4
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
# para Apache 2.4
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
WSGIScriptAlias / "c:/severcart/app/conf/wsgi_prod.py"
WSGIPythonPath "c:/severcart/python/"
Require all granted
Reiniciamos el servicio de Apache y comprobamos el funcionamiento de la aplicación

Eso es todo. Gracias por leer.
En el próximo artículo, crearemos un instalador autoextraíble en InnoSetup para un rápido despliegue del proyecto Django en el equipo del cliente. Para quienes deseen repetir todos los pasos en se han subido todos los distribuibles utilizados.
Fuente: habr.com
