Djano on apache with mod_wsgi(Linux) - 403 Forbidden

时间:2014-01-27 13:54:26

标签: linux django apache ubuntu mod-wsgi

好的,我正在关注this教程。当我尝试通过我的本地服务器访问我的网站时,我得到了这个特殊的错误:

Forbidden You don't have permission to access / on this server. Apache/2.4.6 (Ubuntu) Server at mysite.com Port 80

Α就我而言我已经做了一切正确(我实施了两次提议的方法)这很容易就是操作系统错误(我正在运行Mint 16并且错误说(Ubuntu)),但是我不是经验丰富,因此我需要一些帮助。

我做了一些研究,但这些(12)问题和其他问题都没有解决我的问题。

所以这里是mysite.conf文件:

<VirtualHost *:80>
WSGIScriptAlias / /home/nick/Mysite/mysite.wsgi

ServerName mysite.com
Alias /static /var/www/mysite/static/

<Directory /var/www/mysite/>

Options All
AllowOverride All
Require all granted

</Directory>
</VirtualHost>

和我的hosts文件,显示如何将IP地址重定向到我的本地主机:

127.0.0.1   localhost
127.0.1.1   nick-HP-Notebook-PC
192.168.1.2 mysite.com
192.168.1.2 mysite2.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

那你觉得问题是什么呢?这可能只是一个Linux相关的错误吗? 如果您需要有关该项目或其他任何信息的其他信息,请告诉我。

非常感谢。

更新

这是我的.wsgi文件:

import os
import sys
sys.path = ['/var/www/mysite'] + sys.path
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

我重新启动服务器时也收到此消息。

Restarting web server apache2                                                AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message         [ OK ]

也许这有帮助?

3 个答案:

答案 0 :(得分:1)

如果这正是您的配置文件,那么我怀疑您使用的路径是错误的。请先解决这个问题。

将WSGIScriptAlias设置为正确的路径。

然后您的WSGI文件必须类似于:

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

答案 1 :(得分:1)

开始的事情:

WSGIScriptAlias / /home/nick/Mysite/mysite.wsgi

为此,您没有相应的:

<Directory/home/nick/Mysite>
<Files mysite.wsgi>
Require all granted
</Files>
</Directory>

此外,诸如/ home / nick之类的主目录通常对其他用户不可读,因此无论如何Apache都无法读取该目录中的内容。

接下来是:

Alias /static /var/www/mysite/static/

最终路径上不应该有尾部斜杠。对于子URL而言没有匹配可能会导致问题,尽管通常当URL上的尾部斜杠和文件系统路径缺失时。最好只是让它们匹配是否使用尾部斜杠。

答案 2 :(得分:1)

我遇到了同样的问题。

您的.wsgi脚本应位于/ var / www / mysite /文件夹中,然后根据需要调整配置文件。

同时删除leading / in:

.. Alias /static /var/www/mysite/static ..