Я только что настроил mod python с apache, и я пытаюсь заставить работать простой скрипт, но происходит то, что он публикует весь мой html как простой текст, когда я загружаю страницу. Я подумал, что это проблема с mod_python.publisher, обработчик, который я тоже установил. Я просмотрел его источник и нашел строку, в которой он различает 'text / plain' и 'text / html', и он ищет последние сто символов файла, который он выводит 'в моем сценарии, поэтому я вставил его, а потом это все еще не сработало. Я даже попытался закомментировать часть кода, чтобы издатель установил все как «text / html», но он все равно делал то же самое, когда я обновлял страницу. Может я что то не то настроил.
Вот моя конфигурация в httpd.conf
< Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
< /Directory >






Ваша конфигурация выглядит нормально: у меня есть рабочий скрипт mod_python.publisher с практически такими же настройками.
Еще несколько мыслей:
Когда вы пытались редактировать исходный код издателя, перезапускали ли вы свой веб-сервер? Он загружает библиотеки Python только один раз при первом запуске сервера.
Автоматическое определение издателя ищет закрывающий HTML-тег: </html>. Это то, что вы добавили? (Я не вижу этого в вашем вопросе, но, возможно, он просто был удален, когда вы его разместили.)
Если ничего не работает, вы всегда можете явно указать тип содержимого. Это больше кода, но он гарантированно работает стабильно. Установите в поле content_type вашего запроса значение text / html.
Например, если ваш скрипт сейчас выглядит так:
def index(req, an_arg='default'):
return some_html
это станет:
def index(req, an_arg='default'):
req.content_type = 'text/html'
return some_html
Что не так с mod_wsgi? Что не так с более полной структурой веб-сервера, такой как Django?