我已经按照优秀的教程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
,但未创建myproject
或web
的用户帐户。这是我目前的首选方案,但是/ home中的目录不属于用户似乎有点奇怪。项目中的所有文件都归root:apache
所有,具有apache守护程序的只读权限,并且没有世界权限。
4)在其他地方,例如/bin
,/lib
或/lib64
,其中任何一项似乎都不合适。
5)DocumentRoot /var/www
- 绝对没有!
那么在Linux服务器上设置生产Django项目的地方是否有最佳实践约定?
答案 0 :(得分:2)
按Filesystem Hierarchy Standard,服务器上运行的网站特定服务应位于write.csv(YOUR_DATA, 'results.csv', fileEncoding = 'UTF-8')
下。
在您的情况下,这可能是/srv
。