Python, Apache · 2 min read · Nov 12, 2025

Встраивание Python в Apache2 с помощью mod_python (Debian Etch)

Встраивание Python в Apache2 с помощью mod_python (Debian Etch)

Версия 1.0
Автор: Фалко Тимме

Это руководство показывает, как установить и использовать mod_python на сервере Debian Etch с Apache2. mod_python — это модуль Apache, который встраивает интерпретатор Python в сервер. Он позволяет вам писать веб-приложения на Python, которые будут работать намного быстрее, чем традиционный CGI, и будут иметь доступ к расширенным функциям, таким как возможность сохранять соединения с базами данных и другие данные между запросами и доступ к внутренним механизмам Apache.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я протестировал это на сервере Debian Etch с IP-адресом 192.168.0.100, на котором уже установлен Apache2.

Я использую виртуальный хост с корнем документа /var/www в этом примере.

2 Установка mod_python

Чтобы установить mod_python, мы просто выполняем:

apt-get install libapache2-mod-python

3 Настройка Apache

Теперь мы должны настроить Apache так, чтобы он мог обрабатывать файлы Python. Существует два способа сделать это. Первый (и по умолчанию) — использовать Publisher Handler. Он позволяет вам писать чистые скрипты Python с расширением .py, которые будут интерпретироваться Apache. Второй способ — это PSP Handler. PSP означает Python Server Pages. Он позволяет вам встраивать код Python непосредственно в HTML-код, аналогично PHP. Файлы PSP имеют расширение .psp.

3.1 Publisher Handler

Чтобы включить Publisher Handler, мы должны открыть конфигурацию нашего виртуального хоста (я использую виртуальный хост по умолчанию на Debian с корнем документа /var/www; конфигурация для этого виртуального хоста находится в /etc/apache2/sites-available/default) и добавить строки AddHandler mod_python .py, PythonHandler mod_python.publisher и PythonDebug On:

vi /etc/apache2/sites-available/default

| [...] Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On [...] |

Перезапустите Apache после этого:

/etc/init.d/apache2 restart

Теперь мы создаем небольшой тестовый скрипт Python (например, /var/www/test.py) с чистым кодом Python в нем…

vi /var/www/test.py

| def index(req): return "Тест успешен"; |

… и вызываем его в браузере (например, http://192.168.0.100/test.py). Если все пройдет хорошо, он должен отобразить “Тест успешен” в вашем браузере.

3.2 PSP Handler

Чтобы включить PSP Handler, мы должны открыть конфигурацию нашего виртуального хоста (я использую виртуальный хост по умолчанию на Debian с корнем документа /var/www; конфигурация для этого виртуального хоста находится в /etc/apache2/sites-available/default) и добавить строки AddHandler mod_python .psp, PythonHandler mod_python.psp и PythonDebug On:

vi /etc/apache2/sites-available/default

| [...] Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .psp PythonHandler mod_python.psp PythonDebug On [...] |

Перезапустите Apache после этого:

/etc/init.d/apache2 restart

Теперь мы создаем небольшой тестовый скрипт PSP (например, /var/www/test.psp) с HTML и кодом Python в нем…

vi /var/www/test.psp

|

<% req.write("Привет!") %>

|

… и вызываем его в браузере (например, http://192.168.0.100/test.psp). Если все пройдет хорошо, он должен отобразить “Привет!” в вашем браузере.

4 Модули Python

Если вам нужны дополнительные модули Python, вы можете искать их так:

apt-cache search python

Выберите те, которые вам нужны, и установите их следующим образом:

apt-get install python-mysqldb python-xml

Перезапустите Apache после этого:

/etc/init.d/apache2 restart

5 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.