
В тази статия ще бъде представено подробно ръководство за инсталиране и настройка на програмите Apache, Python и PostgreSQL, за да се осигури работата на Django проекта в операционна система MS Windows. Django вече включва опростен сървър за разработка за локално тестване на кода, но за задачи, свързани с продукция, е необходим по-сигурен и мощен уеб сървър. Ще настроим mod_wsgi за взаимодействие с нашия проект и ще конфигурираме Apache като шлюз към външния свят.
Следва да се отбележи, че инсталирането и настройката ще се извършват в операционната система MS Windows 10 с 32-битова архитектура. Също така 32-битната версия ще бъде универсална и ще работи на 64-битната архитектура. Ако ви е необходима 64-битна инсталация, повторете същите стъпки за 64-битните дистрибуции на програмите, последователността на действията ще бъде идентична.
Като Django проект ще използваме програмата Severcart. Тя е предназначена за управление на движенията на касетите, отчитане на печатащи устройства и договори за доставка и обслужване. Инсталацията на всички програми и модули ще бъде извършена в каталога C:severcart. Местоположението не е решаващо.
Python
Първата стъпка е да изтеглите и инсталирате Python от уебсайта на Python. Избираме Windows като операционна система и 32-битна версия. Към момента на написването на статията, текущата версия е 3.9.0rc2.
След като изтеглите инсталационния файл, щракнете с десния бутон върху него и изберете "Стартиране като администратор". Трябва да видите екрана по-долу.

Слагаме отметки на чекбоксите "Install launcher for all users (recommended)" и "Add Python 3.9 to PATH" и натискаме "Customize installation".

Слагаме отметки на "pip", "py launcher", "for all users (requires elevation)" и натискаме "Next".

Избираме всички полета за въвеждане, както на картинката по-горе, и натискаме "Install".

За да се уверите, че инсталацията е успешна, отворете cmd и напишете python. Ако инсталацията е успешна, трябва да видите подобно на приведеното по-долу покана.

Инсталираме mod_wsgi.
Сваляме компилираният пакет с mod_wsgi от сайта.
. Модулът изпълнява функции на посредник между сървъра Apache и проекта Django. Най-новият пакет ще носи името mod_wsgi-4.7.1-cp39-cp39-win32.whl. Обърнете внимание, че пакетът е компилиран за 32-битова Windows CPython версия 3.9. Също така е важно да се отбележи, че очевидната инсталация на модула pip install mod_wsgi най-вероятно ще завърши с грешка, тъй като по време на инсталацията ще е необходим компилатор Visual Studio C++. Намираме за нецелесъобразно да инсталираме целия компилатор само за един Python пакет в Windows.
Инсталираме модула с помощта на стандартния пакетен мениджър pip в cmd или powershell:
pip install -U mod_wsgi-4.7.1-cp39-cp39-win32.whl

Apache
Сваляме дистрибутива от сайта .
Най-новата версия на уеб сървъра е Apache 2.4.46 win32 VS16. За работата на програмата ще е необходим предварително инсталиран пакет „Visual C++ Redistributable for Visual Studio 2019 x86“.
Разархивираме дистрибутива на Apache в папка C:severcartApache24, след което променяме реда с номер 37 на нашия път
Define SRVROOT "C:\/severcart\/Apache24"
Проверяваме работата на Apache, изпълнявайки в командния ред
C:\/severcart\/Apache24\/bin> httpd.exe
В резултат трябва да видим в браузъра на адреса реда „It works!“.

Инсталираме услугата Apache, за което изпълняваме в командния ред от името на администратора инструкциите:
C:severcartApache24bin>httpd.exe -k install -n "Apache24"
След това свързваме модула mod_wsgi с Apache. За целта изпълняваме в командния ред инструкциите
C:Windowssystem32>mod_wsgi-express module-config
В резултат на това в стандартния изход ще бъдат отпечатани редовете:
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"
Създаваме файл C:severcartApache24confextrahttpd-wsgi.conf и копираме отпечатаните редове по-горе.
Свързваме новата конфигурация с основния файл httpd.conf
Include conf\/extra\/httpd-wsgi.conf
Запазваме промените, рестартираме услугите на Apache
Net stop Apache24
Net start Apache24
PostgreSQL
Инсталираме PostgreSQL, изтеглен от сайта . Текущата версия на продукта е 12. Предимствата на руския дистрибутив пред каноничния са представени на същия сайт.










Действията по инсталацията са представени по-горе и не изискват коментар. Инсталацията е изключително лесна.
Създаваме база данни в postgres, където по-късно ще се съхраняват структурите на данните на 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;

Базата данни е създадена. Сега развиваме Django проекта.
Инсталираме уеб приложението
За целта изтегляме zip архив от сайта. и разпакуваме в каталога C:severcartapp

Внасяме промени в главния конфигурационен файл C:severcartappconfsettings_prod.py, за да укажем данните за връзка с базата данни

Python речник DATABASES съдържа данните за връзка с базата данни. Подробности за настройката четете тук
Инсталираме важните Python пакети за работа на приложенията в рамките на Django проекта
C:severcartapptkinstaller>python install.py

По време на изпълнението на скрипта ще бъде инициализирана базата данни с таблици, констрейнти, индекси и други. Ще бъде предложено да създадете потребител, от името на когото ще се извършва работата в програмата.
Свързваме Django приложението към сървъра Apache, за което добавяме конфигурационния файл
httpd-wsgi.conf с следния текст
Alias /static "c:/severcart/app/static"
Alias /media "c:/severcart/app/media"
# за Apache 2.4
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
# за 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
Рестартираме услугата Apache и проверяваме работата на приложението

Това е всичко. Благодаря, че прочетохте.
В следващата статия ще създаваме инсталационен самораспаковащ се архив в InnoSetup за бързо разгръщане на Django проекта на компютъра на клиента. За тези, които искат да повторят всички действия на са качени всички използвани дистрибутиви.
Източник: habr.com
