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

时间:2015-12-07 20:48:16

标签: python django apache mod-wsgi

我已经按照优秀的教程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启动页面("开始工作!"),我想把项目放在一个比我的主目录更适合生产环境的位置。选项包括:

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,其中任何一项似乎都不合适。

5)DocumentRoot /var/www - 绝对没有!

那么在Linux服务器上设置生产Django项目的地方是否有最佳实践约定?

1 个答案:

答案 0 :(得分:2)

Filesystem Hierarchy Standard,服务器上运行的网站特定服务应位于write.csv(YOUR_DATA, 'results.csv', fileEncoding = 'UTF-8') 下。

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