是否有典型的 mod_wsgi 项目目录?

Is there a typical mod_wsgi project directory?

我已经按照优秀教程 https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos-7 安装了 Apache、mod_wsgi 和 Django。所有这些教程都将 python 虚拟环境和 Django 项目的位置留给了开发人员,但我想知道是否有选择适当位置的最佳实践。比如教程建议在用户家目录下创建虚拟环境:

mkdir ~/myproject
cd ~/myproject
virtualenv myprojectenv

WSGIDaemonProcess myproject python-path=/home/user/myproject:/home/user/myproject/myprojectenv/lib/python2.7/site-packages

(Python 3.4 明智地丢弃了 virtualenv,将其替换为自动创建的版本特定 pyvenv-3.4。)

既然Apache 成功显示了Django 1.8 启动页面("Get to work!"),我想将项目放在比我的主目录更适合生产环境的位置。选项包括:

1) Apache ServerRoot /etc/httpd - 这是我的第一个想法,除了 /etc(应该是?)仅用于配置信息,而不是安装的软件

2) 将它留在我的主目录中 /home/username/myproject - 不受欢迎,因为我不想允许 httpd 读取我的主目录,并且因为我不想不小心弄乱以我身份登录时的项目。

3) 在/home 中创建项目目录,例如/home/myproject/home/web/myproject,没有为 myprojectweb 创建用户帐户。这是我当前的首选选项,但是 /home 中的目录不属于用户似乎有点奇怪。项目中的所有文件将归 root:apache 所有,对 apache 守护程序具有只读权限,对世界没有权限。

4) 其他地方,比如/bin/lib,或者/lib64,其中none好像特别合适。

5) DocumentRoot /var/www - 绝对不是!

关于在 Linux 服务器上的何处设置生产 Django 项目,是否有任何最佳实践约定?

通过 Filesystem Hierarchy Standard 服务器上的站点特定服务 运行 应该在 /srv 下。

在您的情况下,这可能是 /srv/django/myproject