Служба django / apache2 не работает на производстве - PullRequest
0 голосов
/ 15 января 2020

я запускаю django mod_wsgi с apache2 на экземпляре виртуальной машины GCP, и когда я запускаю его на DEBUG = False, файлы stati c работают нормально, но файлы мультимедиа получают 404, когда я проверяю их, в то время как файлы явно присутствуют на сервере. Мой конфиг основан на следующих django do c https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/modwsgi/#serving -файлах

#settings.py
MEDIA_ROOT = os.path.join(PROJECT_ROOT, "media")
MEDIA_URL = os.environ.get("MEDIA_URL", "/media/")

STATIC_ROOT = os.path.join(PROJECT_ROOT, "static")
STATIC_URL = os.environ.get("STATIC_URL", "/static/")

#apache2
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/

<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>

<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>

попытался перезапустить apache2 и даже сервер, но он не работал либо

Ответы [ 2 ]

0 голосов
/ 20 января 2020

исправлено, это была проблема https, мне нужно было добавить конфигурацию к обоим портам файла virtualhost 80 и 443

<VirtualHost *:80>
...
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/

<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>

<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>
...
</VirtualHost>
<VirtualHost *:443>
...
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/

<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>

<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>
...
</VirtualHost>
0 голосов
/ 15 января 2020

Похоже, ваш псевдоним неправильный ...

#apache2
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/

<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>

у псевдонима есть обратная косая черта sh, а у вашего оператора каталога - нет.

...