В этой статье мы рассмотрим как развернуть Django на Apache, если вы этого не знаете, то вам обязательно к прочтению.
Но перед прочтением этой статьи вам нужно установить Apache на Linux, да мы покажем именно на Linux, а точнее на Ubuntu, так как это там сделать проще, на Windows по-другому, об этом в другой раз.
Также предупрежу, что эта статья перевод инструкции PYPI на библиотеку «mod-wsgi», но ещё со своими какими-то дополнениями.
Что такое WSGI:
WSGI — Web Server Gateway Interface, нужен для взаимодействия Python приложений со серверными приложениями, например Apache, с ним мы и бдим связывать приложение.
Подготовка к установки mod-wsgi:
Перед тем как устанавливать пакет, нужно перед этим подготовится, нужно установить Apache (Ссылка выше), языка Python и создать виртуальное окружение:
Также зависимо от дистрибутива и версии Apache, вам нужно скачать определённые компоненты или пакеты.
Если вы используете Debian или Ubuntu c Apache 2.2 и Apache Prefork MPM, вам нужны пакеты:
- apache2-mpm-prefork;
- apache2-prefork-dev;
Если же вы используете Apache worker MPM, то тогда скачайте это:
- apache2-mpm-worker;
- apache2-threaded-dev;
Если вы используете Apache 2.4 не зависимо от MPM, то вам нужно скачать:
- apache2;
- apache2-dev;
Также если вы используете дистрибутивы RHEL, CantOS или Fedora, то тогда вам нужен:
- httpd
- httpd-devel
Если используете Software Collections Library (SCL), с дистрибутивами RHEL, CantOS или Fedora, то вам нужно это:
- httpd24
- httpd24-httpd-devel
Последние что вам нужно сделать когда вы уже создадите проект Django, надо совершить команду collectstatic
, которая переместит все статичные файлы библиотек в папку «static».
1 | python3 manage.py collectstatic |
Это нужно в основном для админ панели, так как без этого админка будет отображаться без стилей.
После того как всё скачали что вам нужно и настроили, можно перейти к установки библиотеки.
Установка mod-wsgi:
Теперь установим библиотеку mod-wsgi, для этого видите не большую команду в терминале:
1 | pip3 install mod_wsgi-standalone |
После установку у вас также с качается сам Apache для Python.
Примечание:
Эту команду нужно использовать только если вы используете Linux, MacOS или другую UNIX подобную систему.
После вы можете запустить сервер, для этого нужно использовать команду mod_wsgi-express
, как ниже:
1 | mod_wsgi-express start-server |
Таким образом вы запустили сервер Apache с Django, его можно открыть по URL http://localhost:8000/.
Дополнительные возможности:
Но что если нужно запустить с определёнными настройками WSGI, для этого в папку вашего приложение (Где ещё есть файл «setting.py»), есть файл «wsgi.py», в нём есть все настройки для Django.
Что бы запустить с него, впишите в терминале эту команду:
1 | mod_wsgi-express start-server wsgi.py |
Также вы можете установить определённый порт:
1 | mod_wsgi-express start-server wsgi.py --port 8080 |
И последняя команда которую я хочу показать, она позволяет использовать Apache если он у вас установлен не по стандартному пути, вот команда:
1 | mod_wsgi-express start-server wsgi.py --httpd-executable=/usr/sbin/apache2 |
Те есть для этого используется параметр --httpd-executable
.
Если вам надо узнать больше опций, то используете эту команду:
1 | mod_wsgi-express start-server --help |
Таким образом вы увидите остальные полезные параметры.
Вывод:
В этой статье вы прочитали как развернуть Django на сервере Apache, для этого мы использовали WSGI, которая реализована в библиотеки «mod-wsgi».
Если вас заинтересовала библиотека, то посмотрите её по ссылке.