我想在我的測試服務器本地設置自動部署腳本。
我在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