Использование mod_wsgi для запуска Python в качестве веб-приложения на CentOS 7

Узнайте, как установить и использовать модуль mod_wsgi от Apache для запуска сценариев Python на веб-странице. Этот модуль Apache можно использовать для обслуживания веб-страниц, написанных на Python, или для рендеринга веб-страниц со встроенными скриптами Python.

mod_wsgi — это особенно хороший выбор для веб-разработчиков, которые привыкли к тому, как Apache работает с PHP. Если вам нужна мощь и гибкость Python, но вы хотите, чтобы он работал как PHP в Интернете, mod_wsgi — это простой ответ.

Требования

  • Облачный сервер под управлением Linux (CentOS 7).
  • Установленный и запущенный Apache.
  • Базовое знакомство с Python.

<code>mod_wsgi</code> против <code>mod_python</code>

Многие пользователи путают разницу между mod_wsgi и mod_python. Оба модуля Apache имеют примерно одинаковый эффект: Они позволяют запускать модули Python на веб-странице.

Хотя mod_python обладает более широким набором функций, mod_wsgi поддерживается и развивается гораздо активнее. Поэтому мы рекомендуем mod_wsgi для большинства пользователей.

Установка mod_wsgi

Обновите вашу систему:

sudo yum update

Установите mod_wsgi с помощью команды:

sudo yum install mod_wsgi

Перезапустите Apache:

sudo systemctl restart httpd

Убедитесь, что модуль загружен:

sudo httpd -M | grep wsgi

Сервер ответит:

[user@localhost ~]# sudo httpd -M | grep wsgi
wsgi_module (shared)

Настройте Apache

В целях безопасности скрипты Python должны храниться в директории, недоступной в Интернете. Создайте этот каталог:

sudo mkdir /var/www/python

Установите Apache владельцем этого каталога, чтобы он мог получить доступ к файлам:

sudo chown apache:apache /var/www/python

Мы будем использовать WSGIScriptAlias для настройки псевдонима скрипта. Права доступа также должны быть предоставлены к директории, в которой находится скрипт.

Создайте файл конфигурации Apache для примера скрипта «Hello World» и откройте его для редактирования:

sudo nano /etc/httpd/conf.d/helloworld.conf

Поместите в этот файл следующее содержимое:

WSGIScriptAlias /helloworld /var/www/python/helloworld.py

Directory /var/www/python/
Order allow,deny
Allow from all
Directory

Сохраните и выйдите из файла. Затем перезапустите Apache:

sudo systemctl restart httpd

Создайте тестовый скрипт

Для этого примера мы будем использовать официально рекомендованный тестовый скрипт mod_wsgi Hello World.

Создайте файл и откройте его для редактирования:

sudo nano /var/www/python/helloworld.py

Поместите в этот файл следующее содержимое:

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Сохраните и выйдите из файла. Затем установите Apache в качестве владельца этого файла, чтобы к нему можно было получить доступ:

sudo chown apache:apache /var/www/python/helloworld.py

Просмотрите этот файл в браузере по адресу http://example.com/helloworld. Вы увидите сообщение «Hello World!».

Оцените статью
cdelat.ru
Добавить комментарий