
V tomto článku predstavíme podrobný návod na inštaláciu a konfiguráciu programov Apache, Python a PostgreSQL na zabezpečenie prevádzky Django projektu v operačnom systéme MS Windows. Django obsahuje zjednodušený vývojový server na lokálne testovanie kódu, avšak na úlohy spojené s výrobou je potrebný bezpečnejší a výkonnejší webový server. Nainštalujeme mod_wsgi na interakciu s naším projektom a nastavíme Apache ako bránu do externého sveta.
Je potrebné poznamenať, že inštalácia a konfigurácia sa bude vykonávať v operačnom systéme MS Windows 10 s 32-bitovou architektúrou. 32-bitová reakcia bude univerzálna a bude fungovať aj na 64-bitovej architektúre. Ak potrebujete 64-bitovú inštaláciu, zopakujte rovnaké kroky pre 64-bitové distribúcie programov, postupnosť akcií bude identická.
Ako Django projekt budeme používať program Severcart. Je určený na správu presunov kaziet, evidenciu tlačových zariadení a zmlúv o dodávkach a údržbe. Inštalácia všetkých programov a modulov sa bude vykonávať v adresári C:severcart. Miesto inštalácie nie je rozhodujúce.
Python
Prvým krokom je stiahnutie a inštalácia Pythonu zo stránky Python. Vyberte Windows ako operačný systém a 32-bitovú verziu. V čase písania tohto článku je aktuálnou verziou 3.9.0rc2.
Po stiahnutí inštalačného súboru kliknite pravým tlačidlom myši na inštalačný súbor a vyberte „Spustiť ako správca“. Mali by ste vidieť obrazovku nižšie

Nastavte začiarknutia vedľa zaškrtávacích políčok „Install launcher for all users (recommended)“ a „Add Python 3.9 to PATH“ a kliknite na „Customize installation“.

Nastavte začiarknutia pri „pip“, „py launcher“, „for all users (requires elevation)“ a kliknite na „Next“.

Vyberte všetky vstupné polia podľa obrázka vyššie a kliknite na „Install“.

Aby ste sa uistili, že inštalácia prebehla úspešne, otvorte cmd a zadajte python. Ak inštalácia prebehla úspešne, mali by ste vidieť príkazový riadok podobný tomu nižšie

Nainštalujeme mod_wsgi
Stiahnite si skompilovaný balík s mod_wsgi z webovej stránky
. Moduł pełni funkcję pośrednika między serwerem Apache a projektem Django. Najnowsza paczka nosi nazwę mod_wsgi-4.7.1-cp39-cp39-win32.whl. Zwróć uwagę, że paczka została skompilowana dla 32-bitowej wersji Windows CPython 3.9. Warto również zaznaczyć, że oczywista instalacja modułu pip install mod_wsgi najprawdopodobniej zakończy się błędem, ponieważ podczas instalacji będzie potrzebny kompilator Visual Studio C++. Instalowanie całego kompilatora dla jednej paczki Pythona w systemie Windows uważamy za niecelowe.
Instalujemy moduł za pomocą standardowego menedżera pakietów pip w cmd lub powershell:
pip install -U mod_wsgi-4.7.1-cp39-cp39-win32.whl

Apache
Pobieramy dystrybucję z witryny .
Najświeższa wersja serwera WWW to Apache 2.4.46 win32 VS16. Do działania programu potrzebny będzie wcześniej zainstalowany pakiet „Visual C++ Redistributable for Visual Studio 2019 x86”.
Wypakowujemy dystrybucję Apache do katalogu C:severcartApache24, następnie zmieniamy linię z numerem 37 na swoją
Define SRVROOT "C:/severcart/Apache24"
Sprawdzamy działanie Apache, wykonując w wierszu polecenia
C:/severcart/Apache24/bin> httpd.exe
W efekcie powinniśmy zobaczyć w przeglądarce pod adresem linijkę „It works!”.

Instalujemy usługę Apache, w tym celu wykonujemy w wierszu polecenia jako Administrator polecenie:
C:severcartApache24bin>httpd.exe -k install -n "Apache24"
Następnie podłączamy moduł mod_wsgi do Apache. W tym celu wykonujemy w wierszu polecenia instrukcję
C:Windowssystem32>mod_wsgi-express module-config
W rezultacie w standardowym wyjściu zostaną wydrukowane linijki:
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"
Tworzymy plik C:severcartApache24confextrahttpd-wsgi.conf i kopiujemy tam wydrukowane powyżej linijki.
Podłączamy nową konfigurację do głównego pliku httpd.conf
Include conf/extra/httpd-wsgi.conf
Zapisujemy zmiany, restartujemy usługi Apache
Net stop Apache24
Net start Apache24
PostgreSQL
Instalujemy PostgreSQL pobrany ze strony . Bieżąca wersja produktu to 12. Korzyści rosyjskiego dystrybucji od kanonicznego są przedstawione na tej samej stronie.










Działania związane z instalacją zostały przedstawione powyżej i nie wymagają komentarzy. Instalacja jest niezwykle prosta.
Tworzymy bazę danych w postgres, gdzie później będą przechowywane struktury danych projektu 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;

Baza danych została utworzona. Teraz rozwijamy projekt Django.
Instalujemy aplikację webową
W tym celu pobieramy archiwum zip z witryny a rozbalíme do adresára C:severcartapp

Upravujeme hlavnú konfiguračnú súbor C:severcartappconfsettings_prod.py, aby sme uviedli parametre pripojenia k DB.

Python slovník DATABASES obsahuje parametre pripojenia k DB. Podrobnosti o nastavení nájdete tu.
Inštalujeme Python balíky potrebné na fungovanie aplikácií v rámci projektu Django.
C:severcartapptkinstaller>python install.py

Počas behu skriptu sa inicializujú tabulky DB, constrainty, indexy a ďalšie komponenty a bude navrhnuté vytvoriť používateľa, pod ktorým bude prebiehať práca v programe.
Pripojíme Django aplikáciu k serveru Apache, na tento účel doplníme konfiguračný súbor.
httpd-wsgi.conf nasledujúcim textom.
Alias /static "c:/severcart/app/static"
Alias /media "c:/severcart/app/media"
# pre Apache 2.4
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
# pre 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
Reštartujeme službu Apache a kontrolujeme fungovanie aplikácie.

Na tomto konci. Ďakujeme, že ste dočítali.
V nasledujúcom článku budeme vytvárať inštalačný samorozbalovací archív v InnoSetup pre rýchlu implementáciu projektu Django na počítači zákazníka. Pre tých, ktorí chcú zopakovať všetky kroky na sú nahrané všetky použité distribúcie.
Zdroj: habr.com
