Попытка заставить Mongrel2 + m2wsgi работать
Я пытаюсь заставить mongrel2 работать с m2wsgi. Что мне нужно сделать, чтобы я мог видеть "Hello World!" в моем браузере? Mongrel2 установлен, но никаких настроек сайта еще не сделано.
def app(environ, start_response):
start_response("200 OK", [('Content-Type', 'text/plain')])
return ['Hello World!', ]
Попытка запустить это:
m2wsgi test
AssertionError: указанное приложение не вызывается
Я использую Ubuntu Maverick.
2 ответа
Чтобы m2wgi мог загрузить ваше приложение, оно должно быть в вашей PYTHONPATH, поэтому, чтобы иметь возможность запустить тестовое приложение, попробуйте скопировать test.py
модуль где-нибудь в вашей PYTHONPATH или, проще, попробуйте это:
PYTHONPATH=.:$PYHTONPATH m2wsgi test.app tcp://127.0.0.1:9995
Предполагая, что в вашей базе данных конфигурации mongrel2 есть маршрут, указывающий на обработчик с send_spec = tcp://127.0.0.1:9995
а также recv_spec = tcp://127.0.0.1:9994
, Я попробовал это локально, и это сработало:
daltonmatos@jetta ~ [6]$ curl http://localhost/m2wsgi/
Hello World!daltonmatos@jetta ~ [7]$
Взгляните на сообщение в блоге, цитируемое Шоном, у вас есть отличная идея о том, как настроить mongrel2 и настроить ваши хосты / маршруты / обработчики. Также попробуйте wsgid, возможно вам понравится =). Он также поддерживает сырые приложения WSGI.
Гук удачи и счастливого взлома!
Если Mongrel2 настроен не полностью, так как ваш оператор "Mongrel2 установлен, но какие-либо конфигурации сайта еще не выполнены", это предполагает, что он не сможет найти ваше приложение (документация m2wsgi, возможно, не так ясна, как быть). Вот руководство по настройке Mongrel2 и готовности к подключению к приложению WSGI - оно использует wsgi d вместо m2wsgi, но я уверен, что вы можете адаптировать его под свои нужды.