
Узнайте, как установить и использовать модуль 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!».