Как мне использовать Apache, чтобы просто по сути запустить скрипт на Python? - PullRequest
0 голосов
/ 12 сентября 2018

Существует несколько способов, а не понятные учебные пособия или что-нибудь в Интернете о том, как запустить базовый скрипт на python с помощью apache.

mod_python? CGI? WSGI?

Нужно ли что-то устанавливать с python?

Это действительно сбивает с толку. Я работал над этим часами.

1 Ответ

0 голосов
/ 29 сентября 2018

Поток

Клиент получает доступ к веб-странице, скажем http://example.com/mangojuice (выпуск 1). Ваш сервер (apache) должен знать, что mangojuice ссылается на /etc/www/superhightechjuice/mango.py. Теперь этот файл Python должен быть выполнен (выпуск 2). Apache должен знать, что .py должен быть выполнен, а не обслуживаться без ошибок. Но Python не знает, когда проснуться и запустить. Поэтому нужна другая сущность (выпуск 3).

Решения трех проблем (интерфейсов) обрабатываются mod_wsgi: WSGI унаследован от концепции CGI (которая использовалась для выполнения сценариев Perl и PHP-сценариев) для расширения до сценариев Python (с дополнительными функциями). mod_wsgi - это то, как Грэм Дамплтон реализовал это в Apache, и теперь это стандарт.

  1. Проблема 1 - файл конфигурации, который выполняет сопоставление - /etc/apache2/conf-available/wsgi.conf
  2. Проблема 2 - Установить mod_wsgi - во время установки он обновляет файлы конфигурации apache, чтобы сообщить, что .py должен быть выполнен; наряду с множеством других вещей
  3. Выпуск 3 - Функция - приложение

Код

def application(environ, start_response):
    status = '200 OK'
    message = b"Hello World" #Prefix b is useful to convert string to bytestring, which is needed by HTTP
    response_header = [('Content-type', 'text/html')]
    start_response(status, response_header)
    return [message]

Причина

Когда вы устанавливаете mod_wsgi, он решает проблему 1, имея файл отображения wsgi.conf . Это решает проблему 2 путем обновления .conf файла apache , а также других настроек ОС. Что касается проблемы 3, она говорит apache, я являюсь промежуточным ПО, когда вижу ссылку на 'application' , я сообщу вам, и вы оба сможете общаться (Apache и Python). Вот как помогает mod_wsgi.

Шаги по настройке mod_wsgi

  1. Установить mod_wsgi для Apache2

    sudo apt install libapache2-mod-wsgi

  2. Перезапустите Apache, чтобы обновить все обновления

    apachectl restart

  3. Создать файл сопоставления

    vi /etc/apache2/conf-available/wsgi.conf

  4. Обновите файл сопоставления с помощью URL и локального пути.

    WSGIScriptAlias ​​/ mangojuice /etc/www/superhightechjuice/mango.py

  5. Создайте действительный код по адресу /etc/www/superhightechjuice/mango.py

    Пример кода такой же, как указано выше. start_response сообщает mod_wsgi, что запросы поступают. mod_wsgi общается с Apache и пропускает ваш код.

Ссылка :

Официальная документация mod_wsgi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...