Сервер Ubuntu 12.10 в виртуальной машине VM.
Я установил mod_python
с помощью apt-get
, включил его с помощью a2enmod
и перезагрузил apache2
. Я также отредактировал \etc\apache2\sites-available\defaults
, как показано ниже. Мой скрипт находится в /var/www/py/
и вызывается с помощью функции post jQquery.ajax. Этот скрипт запускается, но возвращает себя - в виде простого текста. Он должен возвращать json, указывая, что я пропустил какой-то очевидный шаг настройки.
Раскомментирование строки testhandler, приведенной ниже, приводит к тому, что скрипт возвращает вывод mod_python.testhandler - essential вывод php.info (), но для python.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/py>
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
#PythonHandler mod_python.testhandler
PythonDebug On
</Directory>
Как ответ на ваш вопрос: mod_python больше не является рекомендуемым способом развертывания приложений Python. Превращение вашего приложения в правильное приложение wsgi и использование mod_wsgi - это современное состояние.
Теперь для фактического ответа: вам нужно настроить обработчик. mod_python не просто запускает случайные сценарии, но вам нужно указать, какой модуль содержит обработчик, это то, что делает AddHandler.
Для получения дополнительной информации см. Учебник mod_python .