2011-04-05 78 views
0

我可以用root拥有的git文件创建而不使用root来推送?在/ var/www/vhosts上用git pull在web服务器上部署

我使用git用户推入网络服务器。但/ var/www由root或www-data拥有,对其他用户没有写权限。

我可以在其他目录拉,并使用“钩/后收到”但还是这个钩子与git的用户执行...

对于我登录到Web服务器,并做了须藤混帐的时刻拉来源。但如果我从我的笔记本电脑上做一个git pull服务器会更高效。

感谢

+1

如果你在/ var/www中链接了/ home/youruser/pubwww之类的东西,会不会更好?这样,您就不必乱用文件的所有权/权限。 – Darhuuk 2011-04-05 10:14:35

+0

但符号链接我仍然会有同样的问题没有? – gagarine 2011-04-05 12:22:26

+0

为什么?创建git用户拥有的映射的符号链接。然后将你的文件作为git用户推送到这张地图。我不明白你会如何以这种方式遇到问题。 – Darhuuk 2011-04-05 13:51:14

回答

0

我的解决方案是通过www-pub组将所有文件提供给git,除了具有MySQL密码的设置文件以外,其他人都具有读取权限—。

我推送到/home/git/repository/project和结帐到/var/www/project使用hook/post-receive

0

只是把我的评论这里的答案,因为据我所知,这将彻底解决这一问题:

做一个符号链接/var/wwwgit用户所拥有的地图(如/home/git/www)。然后将你的文件推送到这张/home/git/www地图。不再有权限问题。

+0

它肯定也不是一个不好的解决方案 – gagarine 2011-04-18 14:30:36

+0

@gagarine谢谢!应该指出,你的解决方案消耗了两倍的存储空间,这对于现代硬盘大小来说可能不是问题,但它仍然是一种浪费。使用符号链接解决方案,您不会遇到“问题”。 – Darhuuk 2011-04-18 14:54:38