最佳实践:symfony2中的文件/文件夹权限/所有者

时间:2013-05-15 19:59:20

标签: apache security symfony permissions web-deployment

symfony2的内核需要在缓存中写入(作为http用户)。我还需要读取/写入文件夹,原因如下:

  1. IDE需要在文档根目录
  2. 中读/写/创建
  3. 在shell中,我的用户应该能够生成包并清除缓存
  4. 我的用户应该能够操作.git文件夹(通过登台和提交)
  5. 我正在推送到远程/生产服务器,这应由我的用户
  6. 完成

    设置文档根目录和文件的所有权和权限的最佳做法是什么?

    谢谢

2 个答案:

答案 0 :(得分:1)

获取权限,您可以阅读此http://symfony.com/doc/2.0/book/installation.html#configuration-and-setup

ACL是允许您的用户和Web服务器用户管理文件系统上的文件的好方法。

要部署您的应用程序,您可以使用http://capifony.org

希望它有所帮助。

最好的关注。

答案 1 :(得分:0)

我正在使用ACL。 假设您的用户为www-data,而apache组为sudo mkdir -p /var/vhosts sudo chown arsham:www-data /var/vhosts

创建一个文件夹来保存您开发的所有应用程序的文档根目录

sudo chmod 770 /var/vhosts
sudo chmod g+s /var/vhosts

接下来,我们为用户和组+ SGID位设置rwx权限,以便新文件和文件夹将跟随父目录组。

sudo setfacl -dm u::rwx /var/vhosts
sudo setfacl -dm g::rwx /var/vhosts
sudo setfacl -dm u:arsham:rwx /var/vhosts
sudo setfacl -dm g:www-data:rwx /var/vhosts
sudo setfacl -m u:arsham:rwx /var/vhosts
sudo setfacl -m g:www-data:rwx /var/vhosts

接下来,我们通过ACL

为新文件设置默认权限
cd /var/vhosts && mkdir newproject

现在,您只需为新项目创建文档根目录:

setfacl

请注意,如果您需要修改现有文件的权限, 您需要使用-R(递归)选项运行chmodEncoding