Невозможность развертывания django + apache на сервере aws Ubuntu

Я пытаюсь развернуть приложение Django, используя Apache на сервере Ubuntu, у меня возникает странная ошибка (500 internal error server error) при использовании порта :80.

Я провел несколько тестов, используя порт :8000, выполнив команду:

python3 manage.py runserver 0.0.0.0:8000

И приложение работает без проблем, но когда я пытаюсь получить доступ к приложению, используя порт 80, оно работает.

Мой файл конфигурации apache выглядит следующим образом:

<VirtualHost *:80>


Alias /static /home/ubuntu/gh_system/static
<Directory /home/ubuntu/gh_system/static>
    Require all granted
</Directory>

<Directory /home/ubuntu/gh_system/HRSYSTEM>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess HRSYSTEM python-home=/home/ubuntu/gh_system/env python-path=/home/ubuntu/gh_system>
WSGIProcessGroup HRSYSTEM
WSGIScriptAlias / /home/ubuntu/gh_system/HRSYSTEM/wsgi.py

После некоторых исследований, тестирования и просмотра журналов apache с:

sudo tail -100 /var/log/apache2/error.log

Я обнаружил, что проблема связана с этой строкой:

WSGIDaemonProcess HRSYSTEM ***python-home=/home/ubuntu/gh_system/env*** python-path=/home/ubuntu/gh_system>

В основном, apache пытался прочитать пакеты внутри виртуальной среды, но я установил их с помощью команды:

sudo pip3 install -r requirements.txt

По-видимому, использование команды "sudo" устанавливало пакеты вне виртуальной среды, это так странно; но без "sudo" консоль регистрирует ошибку permission denied, поэтому я даю разрешение chmod 700 виртуальной среде и снова устанавливаю пакеты без "sudo", и тогда все работает!

Некоторые вещи, которые я узнал об ошибках:

Problem: Not module 'encodings' --> this problem occurs when apache can not access your packages, usually for a bad path specified in the config file.

Problem: Not module 'x module, could be django' means you need to install the package using pip3.

Надеюсь, это кому-нибудь поможет! И просто чтобы отметить, кое-что, чему я научился в последнее время, это: когда вы тратите слишком много времени, пытаясь решить проблему, и нет много информации об этом в интернете, это означает, что что-то очень, очень базовое не работает в вашем проекте; например, установка пакетов вне виртуальной среды, даже не осознавая этого, как это сделал я.

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