Не удается заставить Django-CMS работать с Apache и mod_wsgi

Я пытаюсь заставить django-cms работать с apache wsgi. Я использую Python 3.12 и последнюю версию всего программного обеспечения (свежая пустая установка ubuntu 24.04). Django-cms запускается с помощью runserver.

Мой vhost file:

Define impact_lab_partners_path /home/mark/python-projects/impact_lab_partners

WSGIApplicationGroup %{GLOBAL}

<VirtualHost *:80>
    ServerName impactlabpartners.com
    ServerAlias www.impactlabpartners.com
    ServerAdmin xxxxxxxxxxxxxxxxx
    DocumentRoot /home/mark/python-projects/impact_lab_partners
    
    ProxyRequests off
    ProxyPreserveHost On
    
    WSGIDaemonProcess ilp python-home=/home/mark/.virtualenvs/impact_lab_partners python-path=${impact_lab_partners_path}/impact_lab_partners
    WSGIProcessGroup ilp
    WSGIScriptAlias / ${impact_lab_partners_path}/impact_lab_parthers/wsgi.py  process-group=ilp

    Alias /static "/home/mark/Documents/impact_lab_partners/do_not_change/static"
    <Directory "/home/mark/Documents/impact_lab_partners/do_not_change/static">
        Require all granted
    </Directory>

   Alias /documents "/home/mark/Documents/impact_lab_partners/do_not_change/documents"
    <Directory "/home/mark/Documents/impact_lab_partners/do_not_change/documents">
        Require all granted
    </Directory>

    <Directory ${impact_lab_partners_path}/impact_lab_partners>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    #  LogLevel Debug
#    LogLevel debug
#    ErrorLog ${APACHE_LOG_DIR}/impact_lab_partners/error.log
#    CustomLog ${APACHE_LOG_DIR}/impact_lab_partners/access.log combined
</VirtualHost>

Я проверил правильность путей.

Ошибка, которую я получаю в /var/log/apache2/error.log каждую секунду или около того:

Current thread 0x0000731f722d1780 (most recent call first):
  <no Python frame>
[Thu Dec 05 18:27:05.634492 2024] [wsgi:warn] [pid 21694:tid 126578896738176] (13)Permission denied: mod_wsgi (pid=21694): Unable to stat Python home /home/mark/.virtualenvs/impact_lab_partners. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
Python path configuration:
  PYTHONHOME = '/home/mark/.virtualenvs/impact_lab_partners'
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  safe_path = 0
  import site = 1
  is in build tree = 0
  stdlib dir = '/home/mark/.virtualenvs/impact_lab_partners/lib/python3.12'
  sys._base_executable = '/usr/bin/python3'
  sys.base_prefix = '/home/mark/.virtualenvs/impact_lab_partners'
  sys.base_exec_prefix = '/home/mark/.virtualenvs/impact_lab_partners'
  sys.platlibdir = 'lib'
  sys.executable = '/usr/bin/python3'
  sys.prefix = '/home/mark/.virtualenvs/impact_lab_partners'
  sys.exec_prefix = '/home/mark/.virtualenvs/impact_lab_partners'
  sys.path = [
    '/home/mark/.virtualenvs/impact_lab_partners/lib/python312.zip',
    '/home/mark/.virtualenvs/impact_lab_partners/lib/python3.12',
    '/home/mark/.virtualenvs/impact_lab_partners/lib/python3.12/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Я пытался найти в гугле отсутствующий модуль 'encodings', но ничего из найденного не помогло. Я не понимаю, почему Python Path не установлен. Я перепробовал всевозможные пути для значений python-home и python path, но, похоже, ничего не помогает.

После дальнейшего поиска неисправностей я обнаружил, что в файле apache3 .conf неправильно указан путь. Однако истинный виновник, похоже, в том, что Ubuntu 22.04 изменила разрешение по умолчанию для папок /home/user с 755 на 750. Когда я изменил разрешение папки /home/mark на 755, сайт заработал.

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