想象一下,我的django项目包含很少的应用程序。在服务器上,它位于/var/www/ProjectName
目录。我的用户名是Foo,有时我想要编辑服务器文件。下一个问题的最佳解决方案是什么?
/var/www
的所有者?/var/www/ProjectName
的所有者?PS。也许项目位于我的主目录?
我对此有一些建议,但我希望听到更有经验的人。
答案 0 :(得分:2)
关于ubuntu 12.04 root
drwxr-xr-x 3 root root 4096 Nov 8 11:59 www
cd /var/www && ls -la
看到所有者,可能是root?
www-data
,在12.04 www-data
家庭目录为/var/www
(www-data:x:33:33:www-data:/var/www
)
您可以collectstatic
到项目中想要的任何目录。我经常在static
旁边有一个名为manage.py
的目录。所有者可能与您的django项目的所有者相同。您只需要允许对此文件夹进行apache
您可能需要考虑一个集中的media
文件夹,而不是每个应用都有媒体。对于静态和媒体,您可以使用django-storages
主人可以是你想要的任何人,我不能说主人因为它是你的机器。但是,我认为,网络服务器需要执行py
文件,因此您可以更改权限以允许此操作。
您可以根据需要找到项目。在apache虚拟主机中,您可以提供wsgi
文件的位置。您的项目没有理由必须住在/var/www
答案 1 :(得分:1)
这是我正在使用的结构。
django/
├── project_virtualenv (virtualenv folder)
└── versioned (folder for things that are versioned)
├── devdoc (documentation)
└── py (code)
└── project (django project)
├── django_app (django app)
│
├── project (project folder)
├── files
│ ├── media (media, user uploads, etc)
│ ├── production_static (statics for production)
│ └── static (statics for development)
└── templates
目录django位于生产服务器上的主目录中,只有wsgi.py
位于公开文件夹中(在我的情况下为/home/user/public_html/wsgi
。
我已将{Django文件夹中的所有内容chmod
编辑为777,只是为了让测试生产服务器上的所有工作正常运行。不确定安全风险是什么,甚至不直接提供文件。