Назад | Перейти на главную страницу

Несколько версий python под apache + mod_wsgi

У меня есть несколько виртуальных хостов, настроенных под одним и тем же экземпляром apache на redhat:

Для каждого виртуального хоста WSGIScriptAlias параметр указывает на файл python, в котором активирована виртуальная среда:

activate_this = '/path_to_the_virtualenv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

Теперь я планирую обновить один из проектов до python-2.7, другой - до python-3.x. Я знаю, что у меня могут быть разные виртуальные среды, отдельные песочницы на Python. Так что со стороны питона все хорошо.

Вопрос в том: Можно ли использовать разные версии python для разных виртуальных хостов apache в одном экземпляре apache + mod_wsgi?

Если нет, что было бы лучше всего продолжить?

Есть соответствующий WsgiPythonHome параметр, но он определяется глобально в контексте «конфигурации сервера», а не для каждого виртуального хоста. Кроме того, mod_wsgi скомпилирован для конкретной версии Python, поэтому я не уверен, что он справится с этим случаем.

Нет, это невозможно. Бинарный файл mod_wsgi должен быть скомпилирован только для одной версии Python, и только один экземпляр скомпилированного модуля mod_wsgi может быть загружен в Apache за раз.

Что вам нужно сделать, так это настроить Apache для прокси на отдельный сервер WSGI, прослушивающий его собственные порты.

Чтобы использовать Apache / mod_wsgi в качестве бэкэнд-сервера, вам следует изучить его с помощью mod_wsgi 4.1.X. Видеть:

Эта новая версия mod_wsgi предоставляет способ установки mod_wsgi для нескольких версий Python и запуска экземпляра Apache для каждой с использованием предоставленного сценария. Сценарий берет на себя всю настройку конфигурации Apache, поэтому вам не нужно об этом беспокоиться.