【问题标题】:403 not found in EC2 - apache&WSGI error在 EC2 中找不到 403 - apache&WSGI 错误
【发布时间】:2013-10-23 16:22:59
【问题描述】:

我在 apache 中编辑了 httpd.conf,添加了:

<Directory /home/ec2-user/hqlocal>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /home/ec2-user/hqlocal/hq_local/apache/django.wsgi
WSGIPythonPath /usr/lib/python2.7/site-packages

# Serving Django admin static files
Alias /static/admin /usr/lib/python2.7/site-packages/django/contrib/admin/static/admin
# Serving Django static files (our own files use in our app), assuming in settings.py,     STATIC_ROOT is “/var/www/static/” and our STATIC_URL is “/static/”   
Alias /static /var/www/static/

我尝试了许多解决 403 问题的解决方案,例如交换拒绝和允许等。但是它们都不起作用,我仍然得到 403 cannot access '/'

因此,我尝试逐行注释。

结果是那一行

WSGIScriptAlias / /home/ec2-user/hqlocal/hq_local/apache/django.wsgi

导致问题。

加上这行,系统变成403但没有它,进入公共DNS时,服务器将指向Apache默认页面。

因此,我假设 Apache 可能没有读取此文件的权限。因此,我将权限更改为全局。但是,它仍然无法正常工作。

我可以知道如何解决这个问题吗?

非常感谢。

【问题讨论】:

    标签: django apache amazon-ec2 wsgi http-status-code-403


    【解决方案1】:

    Apache 用户可能无法读取目录“/home/ec2-user”。观看:

    常见的 mod_wsgi 设置问题,包括这个问题。

    另外,你不应该需要:

    WSGIPythonPath /usr/lib/python2.7/site-packages
    

    如果 mod_wsgi 实际上是针对系统 Python 2.7 编译的。如果它不是针对系统 Python 2.7 编译的,而是针对另一个版本编译的,则不应强制它使用安装到另一个 Python 版本中的模块,因为这会导致问题。您应该重新安装 mod_wsgi,其版本是针对您要使用的正确 Python 版本编译的。

    【讨论】:

      【解决方案2】:

      有两个可能的原因。

      1. 确保您为目录'/home/ec2-user/hqlocal'正确设置了权限,您可以这样做:

        chmod -R 755 /home/ec2-user/hqlocal

      2. 禁用 selinux(如果使用强制模式,您需要在 selinux 中获取 apache 的权限)。你可以配置/etc/selinux/config:

        SELINUX:禁用

      然后重启机器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-16
        • 1970-01-01
        • 2016-07-08
        • 1970-01-01
        • 1970-01-01
        • 2021-11-07
        • 2014-07-15
        • 2012-11-25
        相关资源
        最近更新 更多