Git文件在Web服务器上的权限

时间:2014-12-31 14:17:35

标签: git apache permissions file-permissions

我使用以下权限运行我的网站(Magento / Php5.4)

find $path/. -type f -exec chmod 400 {} \;
find $path/. -type d -exec chmod 500 {} \; 
find $path/var/ -type f -exec chmod 600 {} \; 
find $path/media/ -type f -exec chmod 600 {} \;
find $path/var/ -type d -exec chmod 700 {} \; 
find $path/media/ -type d -exec chmod 700 {} \;

我的文件在www

组下运行

这些是Magento 1.9网站的推荐设置,一切都很好。我现在遇到的问题是,当我尝试在GIT中合并一个新分支时,我得到以下内容

$ git merge origin/ticket-53
error: unable to create file app/code/local/Wage/Codebase/Block/Adminhtml/Client.php (Permission denied)
fatal: cannot create directory at 'app/code/local/Wage/Codebase/Block/Adminhtml/Client': Permission denied

我的.git文件夹设置为777,我可以将其作为sudo,但这有点无意义。

我是否需要将GIT添加到其他组,或者可能更改我的文件正在运行的组?

1 个答案:

答案 0 :(得分:0)

通过将我的整个应用程序设置为以下内容,我能够解决这个问题:

find . -type d -exec chmod 700 {} \;
find . -type f -exec chmod 600 {} \;

现在看来很明显。

所以在部署时我们会将文件夹设置为上面的,在部署之后我们会将权限设置回原来的

我们部署代码后,我们切换回这些权限

find . -type f -exec chmod 400 {} \;
find . -type d -exec chmod 500 {} \; 
find var/ -type f -exec chmod 600 {} \; 
find media/ -type f -exec chmod 600 {} \;
find var/ -type d -exec chmod 700 {} \; 
find media/ -type d -exec chmod 700 {} \;
chmod 700 includes
chmod 600 includes/config.php