Поиск по сайту:

Как запускать скрипты Python с Apache и mod_wsgi в Ubuntu 22.04


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить язык программирования Python
  4. Установите веб-сервер Apache и модуль mod_wsgi.
  5. Конфигурация модуля WSGI в Apache
  6. Протестируйте скрипт Python 3 WSGI.
  7. Загрузить как виртуальную машину
    1. Войдите в систему для виртуальной машины

    Модуль Apache mod_wsgi предоставляет интерфейс для размещения веб-приложений на основе Python. Это хороший выбор для профессиональных хостинговых систем, поскольку он обеспечивает высокую производительность, но одинаково хорошо работает и для небольших сайтов. Развертывание приложений, написанных с использованием фреймворков Python, таких как Django, Web.py, Werkzug, Chery.py, TurboGears и Flask, с mod_wsgi упрощается.

    В этом руководстве я покажу вам, как установить и настроить mod_wsgi с помощью веб-сервера Apache в Ubuntu 22.04 LTS. Это руководство является обновленной версией руководства Apache WSGI для Ubuntu 20.04 от Hitesh Jethva.

    Предпосылки

    • Ubuntu 22.04 для сервера или рабочего стола
    • Вы должны быть системным администратором и иметь права root или sudo для установки и настройки этого программного обеспечения.

    Начиная

    Перед запуском рекомендуется обновить систему до последней версии. Вы можете обновить свою систему с помощью следующей команды:

    sudo apt update -y
    sudo apt upgrade -y

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

    Установить язык программирования Python

    По умолчанию Python предустановлен в Ubuntu 22.04. если Python еще не установлен, вы можете установить его с помощью этой команды:

    sudo apt install python3 libexpat1 -y

    На приведенном ниже снимке экрана показан вывод команды, когда python уже установлен.

    Теперь перейдите к следующему шагу.

    Установите веб-сервер Apache и модуль mod_wsgi.

    На этом этапе мы установим веб-сервер Apache и модуль Python mod_wsgi. Выполните следующую команду, чтобы установить оба приложения. Зависимые пакеты программного обеспечения будут установлены автоматически.

    sudo apt install apache2 apache2-utils ssl-cert libapache2-mod-wsgi-py3 -y

    После установки всех пакетов можно переходить к следующему шагу.

    Конфигурация модуля WSGI в Apache

    Затем вам нужно создать новый скрипт Python в корневом веб-каталоге Apache по умолчанию, чтобы обслуживать его через модуль WSGI Apache. Здесь мы будем использовать небольшой скрипт Hello World для демонстрационных целей.

    Вы можете создать скрипт Python с помощью следующей команды:

    sudo nano /var/www/html/wsgitest.py

    Добавьте следующие строки:

    def application(environ, start_response):
        status = '200 OK'
        output = b'Hello Howtoforge!\n'
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

    Сохраните и закройте файл. Затем измените владельца файла на www-data с помощью следующей команды:

    sudo chown www-data:www-data /var/www/html/wsgitest.py
    sudo chmod 775 /var/www/html/wsgitest.py

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

    sudo nano /etc/apache2/sites-enabled/000-default.conf

    Добавьте следующую строку:

    WSGIScriptAlias /wsgi /var/www/html/wsgitest.py
    

    прямо перед строкой

    </VirtualHost>

    Полный файл виртуального хоста выглядит так:

    
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            #ServerName www.example.com
    
            ServerAdmin 
            DocumentRoot /var/www/html
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    
            WSGIScriptAlias /wsgi /var/www/html/wsgitest.py
    
    
    
    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

    Сохраните изменения в текстовом редакторе и закройте редактор. Следующим шагом является перезапуск веб-сервера Apache, чтобы изменения вступили в силу.

    systemctl restart apache2

    Протестируйте скрипт Python 3 WSGI

    Теперь HTTP-сервер Apache настроен для обслуживания нашего файла Python по протоколу HTTP.

    Откройте веб-браузер и введите URL-адрес http://ваш-сервер-ip/wsgi. замените your-server-ip на IP-адрес сервера. Вы получите белую страницу со словами \Hello Howtoforge!\.

    Вот и все, теперь у вас есть правильно настроенный веб-сервер Apache для запуска приложений Python с использованием mod_wsgi. Следующим шагом будет развертывание веб-приложения Python в каталоге /var/www/html/ и изменение строки WSGIScriptAlias в файле /etc/apache2/sites-enabled/000-default.conf, чтобы она соответствовала сценарию запуска вашего приложения. . Затем снова перезапустите Apache, чтобы применить изменения конфигурации.

    Скачать как виртуальную машину

    Эта установка доступна для загрузки виртуальной машины в формате ova/ovf (совместима с VMWare и Virtualbox) для подписчиков howtoforge.

    Подробности входа в виртуальную машину

    • Пароль для пользователя admininstrator: howtoforge. Пользователь-администратор имеет права sudo.

    Пожалуйста, измените все пароли при первом входе в систему.

    • IP-адрес виртуальной машины: 192.168.0.100.