«Внутренняя ошибка сервера» для моего Django приложения, использующего Apache & Linode - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь развернуть свое приложение, используя сервер Ubuntu с Linode, и у меня появляется «Внутренняя ошибка сервера». Я включу соответствующий код, поэтому, если кто-то может помочь, ПОЖАЛУЙСТА!

ОШИБКА:

[remote 73.XXX.162.165:57509]   File "/home/admin/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 63, in _setup
[remote 73.XXX.162.165:57509]     self._wrapped = Settings(settings_module)
[remote 73.XXX.162.165:57509]   File "/home/admin/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 142, in __init__
[remote 73.XXX.162.165:57509]     mod = importlib.import_module(self.SETTINGS_MODULE)
[remote 73.XXX.162.165:57509]   File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
[remote 73.XXX.162.165:57509]     return _bootstrap._gcd_import(name[level:], package, level)
[remote 73.XXX.162.165:57509]   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
[remote 73.XXX.162.165:57509]   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
[remote 73.XXX.162.165:57509]   File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
[remote 73.XXX.162.165:57509] ModuleNotFoundError: No module named 'myapp.settings'

ФАЙЛ: /etc/apache2/sites-available/KLC.conf

<VirtualHost *:80>
        ...

        Alias /static /home/admin/KLC/myapp/static
        <Directory /home/admin/KLC/myapp/static>
                Require all granted
        </Directory>

        <Directory /home/admin/KLC/myapp/myapp>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        WSGIScriptAlias / /home/admin/KLC/myapp/myapp/wsgi.py
        WSGIDaemonProcess django_app python-path=/home/admin/KLC python-home=/home/admin/venv
        WSGIProcessGroup django_app

</VirtualHost>

ФАЙЛ: wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')

application = get_wsgi_application()

Редактировать / Решение: Внесенное мной изменение было в WSGIDaemonProcess. Я поменял python -дом с python -path.

Кроме того, python -path должен быть на один каталог глубже, чем я изначально определил

<VirtualHost *:80>

        ...
        Alias /static /home/admin/KLC/myapp/static
        <Directory /home/admin/KLC/myapp/static>
                Require all granted
        </Directory>

        <Directory /home/admin/KLC/myapp/myapp>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        WSGIScriptAlias / /home/admin/KLC/myapp/myapp/wsgi.py
        WSGIDaemonProcess django_app python-home=/home/admin/venv python-path=/home/admin/KLC/myapp
        WSGIProcessGroup django_app

</VirtualHost>
...