Отказ в выдаче разрешения и проблемы с модулем Python при развертывании Django с Apache на Ubuntu

Я столкнулся с трудностями при попытке развернуть свой Django-сайт с помощью Apache на сервере Ubuntu. Вот подробности проблемы:

Сообщения об ошибках:

Current thread 0x00007e9faacab780 (most recent call first):
<no Python frame>
[Thu Jun 27 02:58:10.538441 2024] [wsgi:warn] [pid 16762:tid 139224230311808] (13)Permission denied: mod_wsgi (pid=16762): Unable to stat Python home /home/robch/TestSite/django_env. 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/robch/TestSite/django_env'
PYTHONPATH = (not set)
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'

и когда я перехожу на свою страницу, я вижу ошибку 403: screen of my page

Вот еще немного информации о моих файлах:

Взятые шаги:

Проверили и настроили права доступа для /home/robch/TestSite/django_env. Проверили установку Python в виртуальном окружении (/home/robch/TestSite/django_env). Проверили конфигурацию Apache (файлы *.conf в /etc/apache2/sites-available/) на предмет правильности директив python-home и python-path.

Просьба о помощи:

Как я могу добиться того, чтобы мой сайт отображался ПОЛНОСТЬЮ.

Какие шаги я должен предпринять, чтобы убедиться, что Python в виртуальной среде имеет все необходимые модули, особенно "кодировки"?

Решение:

Проблема связана с тем, что у Apache нет разрешения на доступ к вашему домашнему каталогу. Вот как это исправить:

Создайте новый каталог:

sudo mkdir /var/www/TestSite
sudo chown -R $USER:www-data /var/www/TestSite
sudo chmod -R 775 /var/www/TestSite

Переместить проект:

mv ~/TestSite /var/www/

Обновление конфигурации Apache: Обновление /etc/apache2/sites-enabled/TestSite.conf:

apache conf:

<VirtualHost *:80>
    ServerName 85.215.209.167
    DocumentRoot /var/www/TestSite

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /static /var/www/TestSite/static
    <Directory /var/www/TestSite/static>
        Require all granted
    </Directory>

    Alias /media /var/www/TestSite/files/media
    <Directory /var/www/TestSite/files/media>
        Require all granted
    </Directory>

    <Directory /var/www/TestSite/Soundrise>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIScriptAlias / /var/www/TestSite/Soundrise/wsgi.py
    WSGIDaemonProcess django_app python-home=/var/www/TestSite/django_env python-path=/var/www/TestSite
    WSGIProcessGroup django_app
</VirtualHost>

Перезапустите Apache:

sudo systemctl restart apache2

Переместив проект из домашнего каталога и обеспечив надлежащие права доступа, проблемы с развертыванием будут решены.

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