我对Apache和Django非常新,所以如果这个问题很简单,请执行我。我正在尝试将现有站点部署到apache服务器。目前,该网站仍在开发中,因此我只将其作为虚拟主机部署在本地计算机上。 我在部署中使用Django的WSGI模块。在我的网站的配置文件中,我有以下别名:在Apache2服务器上运行的django站点的“正确”权限设置
Alias /media/ /home/tester/Desktop/siteRootDir/media
Alias /content/ /home/tester/Desktop/siteRootDir/content
WSGIScriptAlias /c /home/tester/Desktop/siteRootDir/deploy/site.wsgi
当我运行Apache和去到localhost/C我得到了(13)在Apache日志PermissionDenied错误。要解决这个错误,我(admitedly愚蠢)跑
chmod -R 777 /home/tester/Desktop/siteRootDir
我知道这是不是处理问题的方式,但我只是想在现场工作,所以我可以继续发展。
所以我的问题是,什么是正确的权限设置到siteRootDir目录及其子目录,使网站将运行,我不会在目录中公开不必要的文件。
此外,我意识到这不是一个理想的设置,并且在部署生产站点时可能会遇到问题。任何人都可以请建议一个更好的组织方法呢? 谢谢!
对于apache用户(www-data在我的情况)拥有整个站点目录是否合理?我正在考虑更多地保持自己作为所有者,并且编辑权限设置以允许apache访问它需要的任何文件/目录。 (但我不太确定这是否是正确的方法)。 – EagerToLearn 2012-01-13 20:27:44
我认为你所建议的是正确的方法。在我的开发服务器上,我拥有一切0644和0755以及我自己的所有者。你也可以使用ACL。那么它将是0600和0700,你自己作为所有者和setfacl -m u:www-data:rx的一切。虽然你的fs需要支持ACL。 – 2012-01-13 20:43:40
好吧,那太好了。最后一个问题,当我投入生产时,这将如何改变?我会让apache成为网站dir的所有者吗?或保留生产机器上的用户的所有权,并再次允许apache访问特定的文件/目录? – EagerToLearn 2012-01-13 21:25:58