Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有一个典型的mod_wsgi项目目录?_Python_Django_Apache_Mod Wsgi - Fatal编程技术网

Python 是否有一个典型的mod_wsgi项目目录?

Python 是否有一个典型的mod_wsgi项目目录?,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,我按照优秀的教程安装了Apache、mod_wsgi和Django。所有这些教程都将python虚拟环境和Django项目的位置留给开发人员,但我想知道是否有选择适当位置的最佳实践。例如,本教程建议在用户的主目录中创建虚拟环境: mkdir ~/myproject cd ~/myproject virtualenv myprojectenv 及 (Python 3.4明智地放弃了virtualenv,用自动创建的特定于版本的pyvenv-3.4替换它) 既然Apache成功地显示了Django

我按照优秀的教程安装了Apache、mod_wsgi和Django。所有这些教程都将python虚拟环境和Django项目的位置留给开发人员,但我想知道是否有选择适当位置的最佳实践。例如,本教程建议在用户的主目录中创建虚拟环境:

mkdir ~/myproject
cd ~/myproject
virtualenv myprojectenv

(Python 3.4明智地放弃了
virtualenv
,用自动创建的特定于版本的
pyvenv-3.4
替换它)

既然Apache成功地显示了Django 1.8启动页面(“开始工作!”),我想把项目放在一个比我的主目录更适合生产环境的位置。选择包括:

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

2) 将其保留在我的主目录中
/home/username/myproject
——这是不可取的,因为我不希望授予httpd读取我的主目录的权限,也不希望在以我的身份登录时意外地破坏项目

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

4) 在其他地方,如
/bin
/lib
/lib64
,这些似乎都不是特别合适的

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

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

服务器上运行的特定于站点的服务应位于
/srv

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

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