Процесс 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

Вернуться на верх