我想在我的测试服务器本地设置自动部署脚本。
我在Ubuntu桌面11.04上使用gitolite。 我使用apt-get安装gitolite来安装gitolite,所以它是创建用户gitolite和组gitolite。
现在我安装我的测试网络服务器使用Apache的用户和组ivan:ivan,
并在该用户名下做git克隆。
所以所有的文件和文件夹都有相同的文件拥有者ivan:ivan。使用Gitolite自动部署PHP脚本
我安装后收到在/ var/lib中/ gitolite /库/ testrepo /钩/和有此脚本里面钩:
#!/bin/bash
#CONFIG
LIVE="/home/ivan/public_html/testrepo"
read oldrev newrev refname
if [ $refname = "refs/heads/master" ]; then
echo "===== DEPLOYING TO TEST SITE ====="
unset GIT_DIR
cd $LIVE
git pull origin master:
echo "===== DONE ====="
fi
由于后收到钩由gitolite用户执行的,它有访问正在使用用户ivan的测试服务器的权限问题。
我已将gitolite添加到ivan组,并使其成组访问写入,但仍无法运行。
我知道这是一个权限问题,但我不知道解决方案。
如果你有相同的经验或有任何提示,我会很感激。
感谢
伊万
什么是你已经为你的gitolite回购设置的umask?见http://stackoverflow.com/questions/7086325/setting-umask-in-git-gitolite/7103499#7103499,http://stackoverflow.com/questions/9915482/gitolite-and-file-permissions/9915919#9915919 ,和http://stackoverflow.com/questions/5455070/permission-problems-with-git-sharedrepository/5455127#5455127 – VonC 2012-04-04 14:50:22
嗨VonC,我相信我仍然使用默认gitolite umask。但我认为这并不重要。在我的脚本中,由用户ivan自己的仓库中的gitolite用户执行。所以当它拉动时,由于许可问题,gitolite不能访问git ref头。有没有解决方法?谢谢。 – Ivan 2012-04-05 05:00:21
尝试修改由Gitolite配置的umask无论如何,只是为了检查是否改变任何东西。 – VonC 2012-04-05 05:34:48