我想在本地为我的测试服务器设置自动部署脚本。
我在 ubuntu 桌面 11.04 上使用 gitolite。我使用 apt-get install gitolite 安装 gitolite,所以它是创建用户 gitolite 和组 gitolite。
现在我使用具有用户和组 ivan:ivan 的 apache 设置我的测试网络服务器,
并在该用户名下执行 git clone。
所以所有文件和文件夹都有相同的文件所有者 ivan:ivan。
我在 /var/lib/gitolite/repository/testrepo/hooks/ 下设置了接收后挂钩,并在里面有这个脚本:
#!/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
由于 post-receive 钩子是由 gitolite 用户执行的,因此访问使用用户 ivan 的测试服务器存在权限问题。
我已经将 gitolite 添加到 ivan 组并使其组访问写入,但它仍然无法运行。
我知道这是一个权限问题,但我不知道解决方案。
如果您有相同的经验或有任何提示,我将不胜感激。
谢谢伊万
_