我設置了開發/測試服務器,開發人員可以通過gitolite/git將存儲庫推送到遠程repo/webserver。 在存放點一切運作良好,開發人員可以使用,但是服務器:通過git/gitolite權限部署網站/ webapp錯誤
問題:
我要部署的代碼到Apache的DocumentRoot(chown'd阿帕奇:apcahe和chmod'd 755 )。 I am following these instructions當編輯我的後收到鉤的描述,像這樣:
#!/bin/sh
echo "deploying to DocumentRoot"
GIT_WORK_TREE=/var/www/www.example.com git checkout -f
但是現在,當我從我的本地回購運行git推我得到的權限錯誤,如:
error: git checkout-index: unable to create file .gitignore (Permission denied)
error: git checkout-index: unable to create file .htaccess (Permission denied)
我的文檔根目錄空...後接收掛鉤作爲用戶'gitolite'運行(不知道這是否重要)。
gitolite已經在sudoers列表,所以我想運行是這樣的:
GIT_WORK_TREE=/var/www/www.example.com sudo git checkout -f
,但這似乎並沒有任何工作,我想避免calling a separate shell script如果可能的話。
任何想法將非常感激。
任何可能性,以確保'gitolite'用戶與「apache」帳戶在同一組中? – VonC 2013-03-14 12:55:28
剛剛添加 gitolite 用戶到Apache組,並運行sudo post-recieve鉤現在我得到: 致命:你在一個分支還沒有出生 - PS:你如何在評論中突出顯示? – Alex 2013-03-14 13:39:35
感謝@VonC我解決了這個問題,但答案是做「sudo GIT_WORK_TREE = ..... git checkout -f」 – Alex 2013-03-14 14:03:58