1

Тема: mod_python (версия 2) hello world

mod_python hello world

в репозитории ubuntu 16.04, к сожалению, есть пакет с модулем только для python 2.*

    необходимо установить пакет libapache2-mod-python:

    $ sudo apt-get install libapache2-mod-python

    в конфигурации дефолтного virtualhost-а добавьте, если её нет, секцию directory (путь здесь взят из дефолтной конфигурации) и впишите в неё три директивы:

    <directory /var/www/html>
      addhandler mod_python .py
      pythonhandler hello
      pythondebug on
    </directory>

    создайте файл /var/www/html/hello.py следующего минимального содержания:

    import sys

    from mod_python import apache

    def handler(req):
      req.content_type = 'text/plain'
      req.write("hello world! " + sys.version)
      return apache.OK

    перезапустите apache

    $ sudo service apache2 restart

    запустите скрипт gui-браузером, или консольным, например, curl-ом:

    $ curl http://localhost/test.py
    hello world! 2.7.6 (default, Jun 22 2015, 18:01:27)
    [GCC 4.8.2]

mod_wsgi hello world

в репозитории есть пакет и для python 3

    установите пакет с модулем:

    $ sudo apt-get install libapache2-mod-wsgi-py3

    в конфигурации дефолтного virtualhost-а добавьте строку, предварительно закомментировав (если есть) все секции directory:

    wsgiscriptalias / /var/www/html/hello.wsgi

    создайте файл /var/www/html/hello.wsgi такого содержания:

    import sys

    def application(environ, start_response):
      status = '200 OK'
      output = 'hello world from wsgi! ' + sys.version

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

      return [output]

    отключите модуль mod-python — вместе они работать не будут:

    $ sudo a2dismod python

    перезапустите apache:

    $ sudo service apache2 restart

    запустите скрипт gui-браузером, или консольным, например, curl-ом:

    $ curl http://localhost/
    hello world from wsgi! 3.4.0 (default, Jun 19 2015, 14:24:19)
    [GCC 4.8.2]

Ну как то так....