是否有典型的 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
,没有为 myproject
或 web
创建用户帐户。这是我当前的首选选项,但是 /home 中的目录不属于用户似乎有点奇怪。项目中的所有文件将归 root:apache
所有,对 apache 守护程序具有只读权限,对世界没有权限。
4) 其他地方,比如/bin
,/lib
,或者/lib64
,其中none好像特别合适。
5) DocumentRoot /var/www
- 绝对不是!
关于在 Linux 服务器上的何处设置生产 Django 项目,是否有任何最佳实践约定?
通过 Filesystem Hierarchy Standard 服务器上的站点特定服务 运行 应该在 /srv
下。
在您的情况下,这可能是 /srv/django/myproject
。
我已经按照优秀教程 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
,没有为 myproject
或 web
创建用户帐户。这是我当前的首选选项,但是 /home 中的目录不属于用户似乎有点奇怪。项目中的所有文件将归 root:apache
所有,对 apache 守护程序具有只读权限,对世界没有权限。
4) 其他地方,比如/bin
,/lib
,或者/lib64
,其中none好像特别合适。
5) DocumentRoot /var/www
- 绝对不是!
关于在 Linux 服务器上的何处设置生产 Django 项目,是否有任何最佳实践约定?
通过 Filesystem Hierarchy Standard 服务器上的站点特定服务 运行 应该在 /srv
下。
在您的情况下,这可能是 /srv/django/myproject
。