Минимальная конфигурация Apache для развертывания фляжного приложения (Ubuntu 18.04)
Введение
Апачи HTTP-сервер (обычно называемый просто Apache) является быстрым и безопасным и работает более чем на половине всех веб-серверов по всему миру.
Apache — это бесплатное программное обеспечение, распространяемое организацией Apache Software Foundation, которая продвигает различные бесплатные передовые веб-технологии с открытым исходным кодом.
mod_wsgi представляет собой модуль HTTP-сервера Apache, разработанный Грэмом Дамплтоном, который обеспечивает WSGI совместимый интерфейс для размещения веб-приложений на основе Python под Apache.
Примечание: Мы будем использовать python3.6 для разработки, поэтому мы должны установить mod_wsgi (py3)
Колба — популярная веб-инфраструктура Python, то есть сторонняя библиотека Python, используемая для разработки веб-приложений.
Продолжайте читать дальше, чтобы узнать об интеграции всех трех из них для достижения преимуществ Apache в вашем веб-приложении flask…
Требования
- апач2
- mod_wsgi (для python3)
- колба
Инструкция по установке
- Установить Апач
судо подходящее обновление
sudo apt установить apache2
- Установить mod_wsgi
для питона 3.6 (предпочтительнее)
sudo apt-get установить libapache2-mod-wsgi-py3 python-dev
для питона 2.7
sudo apt-get установить libapache2-mod-wsgi-py python-dev
- Установить флягу или требования.txt
(Предполагая, что у вас установлен pip3.6)
pip3.6 установить колбу
pip3.6 install -r requirements.txt # если у вас есть несколько требований для установки
Проверьте браузер, если он работает под управлением Apache
apache2 -f /etc/apache2/apache2.conf -k начать
Давайте создадим наше фляжное приложение
Давайте создадим вложенный каталог с именем ExampleFlask
в домашнем каталоге (местоположение может быть любым)
mkdir -p ~/ExampleFlask/ExampleFlask
Добавьте ниже 3 файла во внутренний каталог ExampleFlask
__init__.py
Пустой файлmy_flask_app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello world!"
if __name__ == "__main__":
app.run()
my_flask_app.wsgi
- Имя вышеуказанного файла wsgi должно совпадать с именем фляжного приложения.
- Добавьте строку shebang, чтобы указать, какой интерпретатор использовать.
#! /usr/bin/python3.6
import logging
import sys
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, '/home/username/ExampleFlask/ExampleFlask')
from my_flask_app import app as application
application.secret_key = 'anything you wish'
Давайте создадим файл конфигурации для нашего фляжного приложения.
vim /etc/apache2/сайты-доступны/ExampleFlask.conf
<VirtualHost *:80>
# Add machine's IP address (use ifconfig command)
ServerName 192.168.1.103
# Give an alias to to start your website url with
WSGIScriptAlias /testFlask /home/username/ExampleFlask/ExampleFlask/my_flask_app.wsgi
<Directory /home/username/ExampleFlask/ExampleFlask/>
# set permissions as per apache2.conf file
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Включите файл с помощью a2ensite:
sudo a2ensite /etc/apache2/sites-available/ExampleFlask.conf
Перезапустите апач2
Таким образом, новые изменения могут вступить в силу.
apache2 -f /etc/apache2/apache2.conf -k остановить
apache2 -f /etc/apache2/apache2.conf -k начать
Проверьте браузер, работает ли Apache на IP-адресе вашего компьютера, указанном в конфигурации.
Проверьте браузер, запускает ли он ваше фляжное приложение по IP-адресу вашего компьютера с префиксом /testFlask.
URL:
Поздравляем, мы успешно развернули фляжное приложение на Ubuntu 18.04.