You don't have permission to access / on this serv

在阿里云上用 django 1.6.2, apache 2.4.7, mod_wsgi 部署了一个djiango 的测试应用,至于部署的过程以及原理可以参考我以前写过的一篇博客,可以参考这里: Apache,wsgi,django 程序部署配置基本步骤一致,不过这次采用的 django 版本, apache 版本以及mod_wsgi  版本均不相同,正因为这些不相同,才产生了这篇博客, 主要解决两个问题 :
1. apache 错误提示: Forbidden You don't have permission to access / on this server.
2. 在解决上面的错误之后,另外一个错误:当DEBUG=False 时,出现 Bad Request (400) 错误.

按照以前的博客配置好之后,第一个问题出现了,找了很多文章都是说要配置:
程序代码 程序代码

<VirtualHost *:80>
    ServerName 192.168.1.111
    ServerAlias 192.168.1.111
    DocumentRoot /opt/www/html/djangocms/crm
    WSGIScriptAlias / /opt/www/html/djangocms/crm/conf/django.wsgi
  
   <Directory "/opt/www/html/djangocms/crm">
      order allow,deny
      Allow from all
   </Directory>
    
    Alias /static /opt/www/html/djangocms/crm/static
    <Location "/static">
            SetHandler None
    </Location>
    # 很多博客都说要配置这个东西,但事实上我本来就配置了,还是出现了这个错误.
    <Directory "/opt/www/html/djangocms/crm/static">
       order Deny,Allow
       Allow from all
    </Directory>

</VirtualHost>


后来在官网找到了答案, 原因很简单,当你使用  apache 2.4 以上版本时要这样配置:
程序代码 程序代码

....
<Directory "/opt/www/html/djangocms/crm/static">
       order deny,allow
       Require all granted
</Directory>
....

这样配置之后,第一个问题解决了,如果是apache2.4 以前的版本,用我以前的方式配置,是没有问题的. 官方文档请参考: https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/

DEBUG=False 的时候, Bad Request (400) 的解决办法
这对我来说,这是个新问题,我以前用 django 1.4 版本的时候,肯定没这种问题出现。但 django 1.6 出现这样的问题, 而400 错误说明程序内部有问题. 同样在官网也找到了答案,其实这是为了安全着想,你需要在settings.py 中配置能够访问这个站点的域名,举例如下:
程序代码 程序代码

ALLOWED_HOSTS = [
    '.example.com', # Allow domain and subdomains
    '.example.com.', # Also allow FQDN and subdomains
]

上面的英文意思应该很明确了。根据需要自己配置,官方文档如下: https://docs.djangoproject.com/en/1.8/ref/settings/#std%3asetting-ALLOWED_HOSTS

附mod_wsgi,apache 下载地址,注意选择适合自己操作系统的版本:
mod_wsgi 下载地址
apache 2.4.7 下载地址


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 yihaomen 于 2016-08-16 11:28 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: django apache
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.