Python, Apache · 3 min read · Nov 12, 2025
Встраивание Python в Apache2 с помощью mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)
Встраивание Python в Apache2 с помощью mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)
Версия 1.0
Автор: Фалько Тимме
Этот учебник показывает, как установить и использовать mod_python на различных дистрибутивах (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) с Apache2. mod_python — это модуль Apache, который встраивает интерпретатор Python в сервер. Он позволяет вам писать веб-приложения на Python, которые будут работать намного быстрее, чем традиционный CGI, и будут иметь доступ к расширенным функциям, таким как возможность сохранять соединения с базами данных и другие данные между запросами и доступ к внутренним механизмам Apache.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Я протестировал это на системах с IP-адресом 192.168.0.100, где уже установлен Apache2.
2 Debian/Ubuntu
Для Debian/Ubuntu, пожалуйста, обратитесь к этому учебнику: Встраивание Python в Apache2 с помощью mod_python (Debian Etch).
Для пользователей ISPConfig
В этом учебнике я включаю mod_python в стандартном vhost, что не влияет на другие vhosts, поэтому, если вы используете ISPConfig (с версии 2.2.24 и выше), вы можете использовать эту настройку без каких-либо изменений и по-прежнему включать/выключать mod_python для каждого сайта. ISPConfig использует Publisher Handler — он не поддерживает PSP Handler.
3 Fedora 9/CentOS 5.2
3.1 Установка mod_python
Чтобы установить mod_python, мы просто выполняем:
yum install mod_python3.2 Настройка Apache
Теперь мы должны настроить Apache так, чтобы он мог обрабатывать файлы Python. Существует два способа сделать это. Первый (и по умолчанию) — использовать Publisher Handler. Он позволяет вам писать чистые скрипты Python с расширением .py, которые будут интерпретироваться Apache. Второй способ — это PSP Handler. PSP означает Python Server Pages. Он позволяет вам встраивать код Python непосредственно в HTML-код, аналогично PHP. Файлы PSP имеют расширение .psp.
3.2.1 Publisher Handler
Чтобы включить Publisher Handler, мы должны отредактировать конфигурацию mod_python, которую вы можете найти в /etc/httpd/conf.d/python.conf. Этот файл содержит много примеров — мы создаем его резервную копию и создаем этот файл заново. Я использую стандартный корень документа Fedora/CentOS /var/www/html здесь в директиве
cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig
cat /dev/null > /etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf| LoadModule python_module modules/mod_python.so |
Пожалуйста, обратите внимание: если вы используете ISPConfig (с версии 2.2.24 и выше) на сервере, пожалуйста, исключите часть
Перезапустите Apache после этого:
/etc/init.d/httpd restartТеперь мы создаем небольшой тестовый скрипт Python (например, /var/www/html/test.py) с чистым кодом Python в нем…
vi /var/www/html/test.py| def index(req): return "Тест успешен"; |
… и вызываем его в браузере (например, http://192.168.0.100/test.py). Если все пройдет хорошо, он должен отобразить “Тест успешен” в вашем браузере.
3.2.2 PSP Handler
Чтобы включить PSP Handler, мы должны отредактировать конфигурацию mod_python, которую вы можете найти в /etc/httpd/conf.d/python.conf. Этот файл содержит много примеров — мы создаем его резервную копию и создаем этот файл заново. Я использую стандартный корень документа Fedora/CentOS /var/www/html здесь в директиве
cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig
cat /dev/null > /etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf| LoadModule python_module modules/mod_python.so |
Пожалуйста, обратите внимание: если вы используете ISPConfig (с версии 2.2.24 и выше) на сервере, пожалуйста, исключите часть
Перезапустите Apache после этого:
/etc/init.d/httpd restartТеперь мы создаем небольшой тестовый скрипт PSP (например, /var/www/html/test.psp) с HTML и кодом Python в нем…
vi /var/www/html/test.psp| |<% req.write("Привет!") %>
… и вызываем его в браузере (например, http://192.168.0.100/test.psp). Если все пройдет хорошо, он должен отобразить “Привет!” в вашем браузере.
Get new posts in your inbox
No spam. Unsubscribe anytime.