После того, как я что-то изменил в моих файлах на моем Linux сервере, мой макет на сайте рухнул. Вот как это выглядит
myawsdjapp.com
А ниже приведен журнал ошибок.
[Mon Feb 17 12:52:23.636400 2020] [authz_core:error] [pid 7845:tid 140639593273088] [client 121.131.97.11:49904] AH01630: client denied by server configuration: /home/djtu/django_project/staticblog, referer: https://www.myawsdjapp.com/
Странная вещь, я не есть папка с именем «staticblog». Вот мой результат команды ls.
$ ls -la /home/djtu/django_project/
total 228
drwxrwxr-x 8 djtu www-data 4096 Feb 16 19:58 .
drwxr-xr-x 7 djtu djtu 4096 Feb 17 12:33 ..
-rw-r--r-- 1 djtu djtu 6148 Feb 15 14:56 .DS_Store
drwxr-xr-x 6 djtu djtu 4096 Feb 15 14:56 blog
-rw-rw-r-- 1 djtu www-data 167936 Feb 16 19:58 db.sqlite3
drwxr-xr-x 3 djtu djtu 4096 Feb 17 11:59 django_project
-rw-r--r-- 1 djtu djtu 634 Feb 15 14:56 manage.py
drwxrwxr-x 3 djtu www-data 4096 Feb 15 14:56 media
-rw-r--r-- 1 djtu djtu 13994 Feb 15 14:56 posts.json
-rw-r--r-- 1 djtu djtu 624 Feb 15 14:56 requirements.txt
drwxrwxr-x 4 djtu djtu 4096 Feb 16 20:22 static
drwxr-xr-x 5 djtu djtu 4096 Feb 16 18:55 users
drwxrwxr-x 5 djtu djtu 4096 Feb 15 16:58 venv
И это мой файл настроек виртуального хоста. Я использовал certbot.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static/ /home/djtu/django_project/static
<Directory /home/djtu/django_project/static>
Require all granted
</Directory>
Alias /static/ /home/djtu/django_project/media
<Directory /home/djtu/django_project/media>
Require all granted
</Directory>
<Directory /home/djtu/django_project/django_project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/djtu/django_project/django_project/wsgi.py
WSGIDaemonProcess dj_app python-path=/home/djtu/django_project python-home=/home/djtu/django_project/venv
WSGIProcessGroup dj_app
ServerName www.myawsdjapp.com
SSLCertificateFile /etc/letsencrypt/live/www.myawsdjapp.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.myawsdjapp.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Я использовал Django 3.0.2 и Apache / 2.4.41 (Ubuntu 19.10). Может кто-нибудь сказать мне, как это исправить? Спасибо.
РЕДАКТИРОВАТЬ
Хорошо, я вижу некоторые опечатки. Я должен был печатать медиа вместо stati c.
Alias /media/ /home/djtu/django_project/media
<Directory /home/djtu/django_project/media>
Require all granted
</Directory>
Теперь я вижу еще несколько журналов ошибок, к сожалению.
[Mon Feb 17 13:17:56.045119 2020] [authz_core:error] [pid 8038:tid 139797571966720] [client 121.131.97.11:49951] AH01630: client denied by server configuration: /home/djtu/django_project/mediadefault.jpg, referer: https://www.myawsdjapp.com/
[Mon Feb 17 13:17:56.045524 2020] [authz_core:error] [pid 8038:tid 139797486102272] [client 121.131.97.11:49950] AH01630: client denied by server configuration: /home/djtu/django_project/staticblog, referer: https://www.myawsdjapp.com/
[Mon Feb 17 13:17:56.118468 2020] [authz_core:error] [pid 8038:tid 139797580359424] [client 121.131.97.11:49951] AH01630: client denied by server configuration: /home/djtu/django_project/mediaprofile_pics, referer: https://www.myawsdjapp.com/
решено
Я понял, что пошло не так. Я должен был поставить '/' в конце псевдонима. Это сделало все различия.
Alias /static/ /home/djtu/django_project/static/
<Directory /home/djtu/django_project/static>
Require all granted
</Directory>
Alias /media/ /home/djtu/django_project/media/
<Directory /home/djtu/django_project/media>
Require all granted
</Directory>