Django wsgi Apache2:'AH01630:服务器配置拒绝客户端'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django wsgi Apache2:'AH01630:服务器配置拒绝客户端'相关的知识,希望对你有一定的参考价值。
我按照本教程来部署我的django项目:https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-debian-8
为什么无法从apache加载静态文件?
我正在使用Debian9,Python3.5和Django 1.11
这是我的虚拟主机配置:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/alex/djangoproject/static
<Directory /home/alex/djangoproject/static>
Require all granted
</Directory>
<Directory /home/alex/djangoproject/cpanel>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess djangoproject python-home=/home/alex/djangoproject/djangoprojectenv python-path=/home/alex/djangoproject
WSGIProcessGroup djangoproject
WSGIScriptAlias / /home/alex/djangoproject/cpanel/wsgi.py
</VirtualHost>
`
而error.log中的apache错误:
AH01630: client denied by server configuration /home/alex/djangoproject/static
我的settings.py配置与静态foder相关
STATIC_URL = '/static/'
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
通过在静态之前添加django项目名称目录来解决这个问题,这样:
Alias /static /home/alex/djangoproject/static
<Directory /home/alex/djangoproject/static>
Require all granted
</Directory>
会变成这样的:
Alias /static /home/alex/djangoproject/"django-project-name(in mycase: cpanel)"/static
<Directory /home/alex/djangoproject/"django-project-name(in mycase: cpanel)"/static>
Require all granted
</Directory>
执行./migrate.py collectstatic,重启apache并顺利运行。
以上是关于Django wsgi Apache2:'AH01630:服务器配置拒绝客户端'的主要内容,如果未能解决你的问题,请参考以下文章
使用 apache2 在 mod_wsgi 上运行 django python 3.4
Django + mod_wsgi + apache2 - 子进程 XXX 仍然没有退出,发送一个 SIGTERM
使用 mod_wsgi 在 Ubuntu 16.04 apache2 上部署 Django 应用程序
在 ubuntu 17 上通过 wsgi 运行 django 应用程序的问题
centos7 + Apache2.4 + python3.5 +mod_wsgi4.5.15 + Django1.10安装指导