Процесс wsgi не загружает правильное окружение python
К сожалению, до сих пор не найдено никакой релевантной помощи - даже если было поднято много похожих вопросов.
У меня возникла проблема с настройкой 2 отдельных проектов django на одном сервере, где я не могу использовать поддомены. Это привело меня к Многочисленные приложения mod_wsgi на одном виртуальном хосте, направляющие на неправильное приложение, что помогло использовать тег <location>
, чтобы приблизиться к решению.
Вот оставшаяся проблема:
У меня настроен 1 вирутальный хост с ssl и 2 разных «сайта»:
<VirtualHost *:443>
ServerName myserver.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/myserver.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/myserver.com.key
SSLCACertificateFile /etc/httpd/ssl/myserver.com.bundle
# anspl4fd configuration
Alias /anspl4fd/static/ /var/customers/webs/anspl4fd/static/
<Directory /var/customers/webs/anspl4fd/static>
Require all granted
</Directory>
WSGIDaemonProcess anspl4fd python-home=/var/customers/python-env/anspl4fd python-path=/var/customers/webs/anspl4fd
WSGIScriptAlias /anspl4fd /var/customers/webs/anspl4fd/Webseite/wsgi.py
<Location /anspl4fd>
WSGIProcessGroup anspl4fd
</Location>
<Directory /var/customers/webs/anspl4fd/Webseite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# anscrd configuration
Alias /anscrd/static/ /var/customers/webs/anscrd/static/
<Directory /var/customers/webs/anscrd/static>
Require all granted
</Directory>
WSGIScriptAlias /anscrd /var/customers/webs/anscrd/Webseite/wsgi.py
WSGIDaemonProcess anscrd python-home=/var/customers/python-env/anscrd python-path=/var/customers/webs/anscrd
<Location /ancrd>
WSGIProcessGroup anscrd
</Location>
<Directory /var/customers/webs/anscrd/Webseite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Но конфигурация 2-го сайта «anscrd» не отрабатывает правильное python-окружение. Она использует системное окружение по умолчанию, что можно проверить, выполнив:
sys.stderr.write(f"Python executable: {sys.executable}\n")
sys.stderr.write(f"Python version: {sys.version}\n")
sys.stderr.write(f"Python path: {sys.path}\n")
в моих «сайтах» wsgi.py
Теперь, добавив:
sys.path.insert(0, '/var/customers/webs/anscrd') # Project directory
sys.path.insert(0, '/var/customers/python-env/anscrd/lib/python3.9/site-packages')
к тому же wsgi.py «исправит» / обойдет эту проблему, и оба «сайта» (проекты django) будут работать именно так, как должны.
Но я бы предпочел знать, почему мой WSGIDaemonProcess(ы) работает неправильно - я в растерянности
System: Oracle Linux 9.4 Apache 2.4 Python 3.9 Django 4.2