0

我通过添加以下内容编辑了 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 可能没有读取这个文件的权限。因此,我将权限更改为全局。但是,它仍然无法正常工作。

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

非常感谢。

4

2 回答 2

0

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 版本编译。

于 2013-10-23T17:21:16.423 回答
0

有两个可能的原因。

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

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

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

    SELINUX:禁用

然后重启机器。

于 2015-02-11T19:44:23.033 回答