
In questo articolo verrà fornita una guida dettagliata sull'installazione e la configurazione dei programmi Apache, Python e PostgreSQL per garantire il funzionamento di un progetto Django su sistemi operativi MS Windows. Django include già un server di sviluppo semplificato per il test locale del codice, ma per compiti legati alla produzione è necessaria una soluzione di web server più sicura e potente. Configureremo mod_wsgi per interagire con il nostro progetto e impostare Apache come gateway verso il mondo esterno.
Si segnala che l'installazione e la configurazione verranno effettuate su un sistema operativo MS Windows 10 a 32 bit. Inoltre, la versione a 32 bit sarà universale e funzionerà anche su architetture a 64 bit. Se hai bisogno di un'installazione a 64 bit, ripeti le stesse operazioni per i pacchetti a 64 bit, la sequenza delle azioni sarà identica.
Come progetto Django utilizzeremo il programma Severcart. È destinato alla gestione del movimento delle cartucce, al monitoraggio dell'attrezzatura di stampa e ai contratti di fornitura e manutenzione. L'installazione di tutti i programmi e moduli avverrà nella cartella C:severcart. La posizione non è fondamentale.
Python
Il primo passo consiste nel scaricare e installare Python dal sito web di Python. Selezioniamo Windows come sistema operativo e la versione a 32 bit. Al momento della scrittura di questo articolo, la versione attuale è 3.9.0rc2.
Dopo aver scaricato il file di installazione, fai clic con il tasto destro sul file di installazione e seleziona 'Esegui come amministratore'. Dovresti vedere lo schermo qui sotto.

Selezioniamo le caselle di controllo 'Installa launcher per l'utente addizionale (consigliato)' e 'Aggiungi Python 3.9 al PATH' e clicchiamo su 'Personalizza installazione'.

Selezioniamo le caselle relative a 'pip', 'py launcher', 'per tutti gli utenti (richiede elevazione)' e clicchiamo su 'Avanti'.

Selezioniamo tutti i campi di input come nell'immagine sopra e clicchiamo su 'Installa'.

Per assicurarci che l'installazione sia avvenuta con successo, apriamo il cmd e digitiamo python. Se l'installazione è andata a buon fine, dovresti vedere un prompt simile a quello qui sotto.

Installa mod_wsgi
Scarica il pacchetto compilato con mod_wsgi dal sito
. Il modulo funge da intermediario tra il server Apache e il progetto Django. L'ultimo pacchetto avrà il nome mod_wsgi-4.7.1-cp39-cp39-win32.whl. Si noti che il pacchetto è stato compilato per Windows a 32 bit con CPython versione 3.9. È anche importante notare che l'installazione del modulo pip install mod_wsgi probabilmente terminerà con un errore, poiché durante il processo di installazione sarà necessario un compilatore Visual Studio C++. Riteniamo che installare l'intero compilatore solo per un pacchetto Python su Windows non sia utile.
Installiamo il modulo utilizzando il gestore di pacchetti standard pip in cmd o powershell:
pip install -U mod_wsgi-4.7.1-cp39-cp39-win32.whl

Apache
Scarichiamo il pacchetto dal sito .
L'ultima versione del server web è Apache 2.4.46 win32 VS16. Inoltre, per far funzionare il programma sarà necessario avere precedentemente installato il pacchetto "Visual C++ Redistributable for Visual Studio 2019 x86."
Estraiamo il pacchetto Apache nella cartella C:severcartApache24, quindi modifichiamo la riga numero 37 con la nostra
Define SRVROOT "C:/severcart/Apache24"
Verifichiamo il funzionamento di Apache eseguendo nella riga di comando
C:/severcart/Apache24/bin> httpd.exe
Dovremmo vedere nel browser all'indirizzo la stringa "It works!".

Installiamo il servizio Apache, per questo eseguiamo nella riga di comando come Amministratore il seguente comando:
C:severcartApache24bin>httpd.exe -k install -n "Apache24"
Poi collegheremo il modulo mod_wsgi ad Apache. Per questo eseguiamo nella riga di comando il seguente comando
C:Windowssystem32>mod_wsgi-express module-config
Di conseguenza, verranno stampate nel output standard le seguenti righe:
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"
Creiamo il file C:severcartApache24confextrahttpd-wsgi.conf e incolliamo le righe stampate sopra.
Colleghiamo la nuova configurazione al file principale httpd.conf
Include conf/extra/httpd-wsgi.conf
Salviamo le modifiche e riavviamo i servizi di Apache
Net stop Apache24
Net start Apache24
PostgreSQL
Installiamo PostgreSQL scaricato dal sito . La versione attuale del prodotto è la 12. I vantaggi della distribuzione Russa rispetto a quella canonica sono presentati sullo stesso sito.










Le operazioni per l'installazione sono presentate sopra e non necessitano di commenti. L'installazione è estremamente semplice.
Creiamo un DB in postgres, dove successivamente verranno memorizzate le strutture dati del progetto 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;

Il DB è stato creato. Ora avviamo il progetto Django.
Installiamo l'app web
Per questo scarichiamo l'archivio zip dal sito e estraiamo nella cartella C:severcartapp

Apportiamo modifiche al file di configurazione principale C:severcartappconfsettings_prod.py per specificare i dettagli di connessione al database

Il dizionario Python DATABASES contiene i dettagli di connessione al database. Per ulteriori informazioni sulla configurazione, leggi qui
Installiamo i pacchetti Python necessari per far funzionare le applicazioni all'interno del progetto Django
C:severcartapptkinstaller>python install.py

Durante l'esecuzione dello script verrà effettuata l'inizializzazione del database con tabelle, constraint, indici e altro, e verrà chiesto di creare un utente con cui lavorerà il programma.
Colleghiamo l'applicazione Django al server Apache, per questo completiamo il file di configurazione
httpd-wsgi.conf con il seguente testo
Alias /static "c:/severcart/app/static"
Alias /media "c:/severcart/app/media"
# per Apache 2.4
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
# per 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
Riavviamo il servizio Apache e controlliamo il funzionamento dell'applicazione

Questo è tutto. Grazie per aver letto fino in fondo.
Nel prossimo articolo creeremo un archivio autoestraente in InnoSetup per un rapido dispiegamento del progetto Django sul computer del cliente. Per coloro che vogliono ripetere tutte le azioni su sono stati caricati tutti i pacchetti utilizzati.
Fonte: habr.com
