Я пытаюсь заставить mod-python работать с apache2, но безуспешно. Я выполнил несколько руководств по работе с mod-python, но не вижу, что делаю неправильно.
Когда я посещаю http://site.example.com/cgi-bin/test.py Я действительно получаю свою страницу 404! (в то время как я получаю 403 запрет, если файл действительно не существует)
Вот моя установка:
В /etc/apache2/sites-enabled/ есть файлы конфигурации, названные в честь каждого из моих доменов. В файл site.example.com я добавил это в раздел пользовательских директив:
# Begin user directives <--
<Directory /home/default/site.example.com/user/htdocs/cgi-bin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
# --> End user directives
полный файл здесь, который включает строку:
ИЗМЕНИТЬ, чтобы добавить содержимое test.py:
#!/usr/bin/python
print "Content-type: text/html"
print
print 'hello world'
#print 1/0
Как показано выше, я получаю 404 /python/test.py was not found on this server
.
Но если я раскомментирую последнюю строку, я получу:
Mod_python error: "PythonHandler mod_python.publisher"
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch
result = object(req)
File "/usr/lib/python2.4/site-packages/mod_python/publisher.py", line 98, in handler
path=[path])
File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 457, in import_module
module = imp.load_module(mname, f, p, d)
File "/home/default/site.example.co.uk/user/htdocs/python/test.py", line 5, in ?
print 1/0
ZeroDivisionError: integer division or modulo by zero
Эта трассировка выглядит правильно? Кстати, включение cgitb ни на что не влияет.
Есть ли какая-либо другая информация, которую я могу добавить, чтобы помочь диагностировать это?