10.05.2011

Простейшее скрещивание Python и Apache

Сразу предупреждаю, что на боевые сервера этого ставить нельзя. Во-первых для них существует более современный mod_wsgi, который ставится сложнее и который дает возможность использовать фреймворки, во-вторых данный вариант небезопасный, потому что код будет читаться Апачем, а аналога open_basedir, как у PHP, для Python нет. Этот пример только для тех, кто учит Python и кому нужно побыстренькому поднять вэб-сервер, сосредоточившись на языке, а не на системном администрировании. Вариант для Debian.

Устанавливаем модули Апача, чтобы научить его "хэндлить" Python'ий код:
apt-get install libapache2-mod-python libapache2-mod-python-doc

Пишем общий для всего сервера конфиг Апача, который говорит, что все файлы, которые заканчиваются на .py или .psp, обрабатывать питоньим интерпретатором:
tee > /etc/apache2/mods-available/python.conf

<IfModule mod_python.c>
        AddHandler mod_python .py .psp
        PythonHandler mod_python.publisher | .py
        PythonHandler mod_python.psp | .psp
</IfModule>



Так как при установке этот конфиг не добавился в раздел mods-enabled, то деактивируем и активируем модуль, чтобы он подцепил новые настройки:
a2dismod python
a2enmod python

И наконец рестартуем Apache:
invoke-rc.d apache2 restart

==========
Для проверки создайте в корне сайта файл test.py со следующим содержимым:


def index(req):
  return "This is python file test.py";

и зайдите на этот сайт: http://site.com/test.py


Комментариев нет:

Отправить комментарий