Запустите веб-сайт Django с mod_wsgi, отличным от установленного по умолчанию
У меня есть сервер Apache2, на котором размещено несколько сайтов Django. Все, кроме одного, используют Django 3.8, используя mod_wsgi, скомпилированный на Python 3.7. Исключающий сайт (назовем его SiteX) использует Django 4.0, который требует Python 3.8+. Я хочу, чтобы SiteX использовал виртуальную среду с этими более новыми версиями Python и Django, в то время как другие сайты продолжают использовать свои версии по умолчанию.
Для SiteX я создал виртуальную среду venv в его директории. Но, насколько я понимаю, установленный в настоящее время mod_wsgi не совместим с его версией Python, поэтому указание WSGIPythonHome в conf-файле ничего не даст
текущий mod_wsgi (4.7/python 3.7) загружается в /etc/apache2/mods-available/wsgi.load строкой
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
Я попробовал создать новый mod_wsgi, на этот раз используя модуль Python mod_wsgi, который я установил в venv. В файле .conf для группы сайтов Django (которые включают SiteX) я попробовал указать эту уникальную версию mod_wsgi над блоком <VirtualHost> строкой:
LoadModule wsgi_module "/var/www/html/app/SiteX/venv/lib/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-x86_64-linux-gnu.so"
но запуск $ apachectl configtest говорит: module wsgi_module is already loaded, skipping.
Я нашел решение для нескольких mod_wsgi с использованием WSGIDaemonProcess, но .conf выглядит несколько иначе, чем мое. Ниже приведен фрагмент соответствующих строк из .conf, но я не уверен, куда вставить WSGIDaemonProcess.
<IfModule mod_ssl.c>
# LoadModule wsgi_module, WSGIPythonHome, WSGIPythonPath here?
<VirtualHost _default_:443>
...
Alias /static /var/www/html/app/imagingTracking/static/
...
# other django website Directory blocks here
...
<Directory /var/www/html/app/SiteX/static/>
Require all granted
</Directory>
<Directory /var/www/html/app/SiteX/SiteX/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
</IfModule>
Кроме того, я не уверен, где найти соответствующие .wsgi файлы для этого.
Является ли моя цель вообще достижимой? Будет неприятно, если мне придется понизить рейтинг SiteX только по этой причине.