Python в Apache · 2 min read · Nov 13, 2025

Встраивание Python в Apache2 с помощью mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) - Страница 3

5 OpenSUSE 11

5.1 Установка mod_python

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

yast -i apache2-mod_python

Чтобы включить mod_python, откройте /etc/sysconfig/apache2 и добавьте python в строку APACHE_MODULES, например, так:

vi /etc/sysconfig/apache2

| [...] APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 rewrite python" [...] |

После этого выполните

SuSEconfig

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

/etc/init.d/apache2 restart

5.2 Настройка Apache

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

5.2.1 Publisher Handler

Чтобы включить Publisher Handler, мы создаем конфигурацию mod_python в /etc/apache2/conf.d/python.conf (этого файла не существует, поэтому мы создаем его). Я использую корневую директорию OpenSUSE по умолчанию /srv/www/htdocs в директиве - подкорректируйте это под свои нужды. Важные строки: AddHandler mod_python .py и PythonHandler mod_python.publisher:

vi /etc/apache2/conf.d/python.conf

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

Пожалуйста, обратите внимание: если вы используете ISPConfig (начиная с версии 2.2.24) на сервере, не создавайте этот файл, так как это включит mod_python глобально для данной директории. В ISPConfig вы можете включить mod_python для каждого сайта отдельно, что дает вам больше контроля над тем, может ли сайт использовать mod_python или нет.

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

/etc/init.d/apache2 restart

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

vi /srv/www/htdocs/test.py

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

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

5.2.2 PSP Handler

Чтобы включить PSP Handler, мы создаем конфигурацию mod_python в /etc/apache2/conf.d/python.conf (этого файла не существует, поэтому мы создаем его). Я использую корневую директорию OpenSUSE по умолчанию /srv/www/htdocs в директиве - подкорректируйте это под свои нужды. Важные строки: AddHandler mod_python .psp и PythonHandler mod_python.psp:

vi /etc/apache2/conf.d/python.conf

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

Пожалуйста, обратите внимание: если вы используете ISPConfig (начиная с версии 2.2.24) на сервере, не создавайте этот файл, так как это включит mod_python глобально для данной директории. В ISPConfig вы можете включить mod_python для каждого сайта отдельно, что дает вам больше контроля над тем, может ли сайт использовать mod_python или нет. Также обратите внимание, что ISPConfig не поддерживает PSP Handler - он использует Publisher Handler.

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

/etc/init.d/apache2 restart

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

vi /srv/www/htdocs/test.psp

|

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

|

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

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.