Используйте плагин mod_wsgi для Apache.
Вы можете сделать это, чтобы увидеть, как существующий скрипт может быть преобразован в приложение WSGI. Это отправная точка, чтобы показать, как работает интерфейс WSGI.
import sys
def myWSGIApp( environ, start_response ):
with file( "temp", "w" ) as output:
sys.stdout= output
execfile( "some script.py" )
sys.stdout= __stdout__
status = '200 OK'
headers = [('Content-type', 'text/plain')]
start_response(status, headers)
result= file( "temp", "r" )
return result
Обратите внимание, что вы можете легко переписать свои скрипты, чтобы они соответствовали WSGI
стандарт тоже. Это все еще не совсем лучший подход.
Если бы у вас было это
if __name__ == "__main__":
main()
Вы просто должны добавить что-то подобное в каждый скрипт.
def myWSGIApp( environ, start_response ):
with file( "temp", "w" ) as output:
sys.stdout= output
main()
sys.stdout= __stdout__
status = '200 OK'
headers = [('Content-type', 'text/plain')]
start_response(status, headers)
result= file( "temp", "r" )
return result
Тогда каждый скрипт вызывается как приложение WSGI и может быть подключен
в основанную на WSGI инфраструктуру.
Лучший подход - переписать ваши сценарии, чтобы они не использовали sys.stdout
, а записывали в файл, который был передан им в качестве аргумента.
Тестовая версия вашего сервера может быть такой простой.
from wsgiref.simple_server import make_server
httpd = make_server('', 8000, myWSGIApp)
Если у вас есть приложения WSGI для ваших скриптов, вы можете создать более умного
Приложение WSGI,
Разбирает URL. Обновляет среду с именем сценария для запуска.
Запускает приложение WSGI в соответствующей среде.
Информацию смотрите в http://docs.python.org/library/wsgiref.html.
Затем вы можете настроить Apache для использования вашего WSGI-сервера через mod_wsgi
.
Подробнее см. http://code.google.com/p/modwsgi/.