【问题标题】:AH01630: client denied by server configuration issue[已解决]AH01630:客户端被服务器配置问题拒绝
【发布时间】:2020-05-31 23:57:17
【问题描述】:

在我的 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)。有人可以告诉我如何解决这个问题吗?谢谢。

编辑

好的,我看到了一些错字。我应该输入媒体而不是静态的。

    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/

【问题讨论】:

    标签: django ubuntu apache2


    【解决方案1】:

    我回答我自己的问题只是为了结束这个问题。这个答案曾经在问题中,但我将它移到这里。

    已解决

    我知道出了什么问题。我应该把'/'放在别名的末尾。它带来了所有的差异。

            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>
    

    【讨论】: