使用 apache 和 mod_wsgi 时,我在哪里存储我的 django 项目代码?

tms*_*ont 3 apache django mod-wsgi

我正在查看 django 网站上似乎有冲突的信息。

在此页面上:https : //docs.djangoproject.com/en/1.7/intro/tutorial01/

它说:

将任何这些 Python 代码放在您的 Web 服务器的文档根目录中并不是一个好主意,因为它存在人们可以通过 Web 查看您的代码的风险。这对安全不利。

将您的代码放在文档根目录之外的某个目录中,例如 /home/mycode。

但是,在此页面上:https : //docs.djangoproject.com/en/1.7/howto/deployment/wsgi/modwsgi/ 它说这应该是 Apache 的设置方式:

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)

后者不是在 www 根目录中显示项目文件吗?

那么哪个是正确的?前者还是后者?

我已经使用这些 linux 命令来设置项目:

cd /home/personal/network/django
django-admin.py startproject djnet
Run Code Online (Sandbox Code Playgroud)

然后我把它放到 httpd.conf 中:

WSGIScriptAlias / /home/personal/network/django/djnet/wsgi.py
WSGIPythonPath /home/personal/network/django
<Directory /home/personal/network/django/djnet>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)

这有效,但我担心我引用的第一页中的“这对安全性不利”行。

我应该将生成的项目代码放在django-admin startproject与 Apache 目录分开的目录中吗?如果是这样,我将如何配置 Apache?

Dan*_*man 5

不,你为什么说它显示文档根目录中的文件?它没有,它在“/path/to/mysite.com”中显示它们。您所做的是正确的,并且也不在网络根目录中。