错误可以在http://djaffry.selfip.com:8080/
看到根据django的网站,我有一个项目工作得很好,但是我把所有文件都放在/ var / www /下并且我的理解有限,这很糟糕。
“如果您的背景是PHP,那么您可能习惯将代码放在Web服务器的文档根目录下(在/ var / www这样的地方)。使用Django,您不会这样做。它不是将任何这些Python代码放在Web服务器的文档根目录中是个好主意,因为它可能会使人们可能通过Web查看您的代码。这对安全性不利。
将您的代码放在文档根目录的外部目录中,例如/ home / mycode。“
所以我去了/home/tipu/stuff/
并执行了django-admin.py startproject twingle
。然后我去了apache并做了
<VirtualHost *:8080>
ServerName tweet_search_engine
DocumentRoot /home/tipu/stuff/twingle/
</VirtualHost>
<Directory /home/tipu/stuff/twingle>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE settings
PythonOption django.root /home/tipu/stuff/twingle
PythonDebug On
PythonPath "['/home/tipu/stuff/', '/home/tipu/stuff/twingle/'] + sys.path"
</Directory>
现在我收到403 Forbidden错误..知道我做错了什么?我是Linux(CentOS)和django的新手,所以我可能会看到一些非常简单的东西。
答案 0 :(得分:1)
这几乎肯定只是一个访问权限问题。 Apache用户需要访问项目路径中所有目录的权限 - home,home / tipu,home / tipu / stuff,home / tipu / stuff / twingle等等。您需要找出Apache正在运行的用户,并为这些目录授予读取权限。
正如伊格纳西奥所说,/ srv可能是一个更好的地方 - 但同样的权利问题仍然适用。
答案 1 :(得分:0)
好吧,/home
下的/srv
不是正确的地方,感谢SELinux。将应用置于{{1}}下。