2016-12-02 7 views
2

git-http-backend와 apache 2.4를 사용하여 git 서버를 설정하려하고 있습니다. 도움이되었던 것과 동일한 것에 대해 this question을 찾았지만, 나는 붙어있다. 나는 우분투 16.04에 자식과 아파치를 설치 한 및 필요한 모듈 아파치로 git-http-backend 설정하기 2.4

sudo a2enmod cgi alias env

을 사용하여 추가

그런 다음 /etc/apache2/apache2.conf에 다음 코드를 추가 : /var/www/git이 어디

<VirtualHost *:80> 
    SetEnv GIT_PROJECT_ROOT /var/www/git 
    SetEnv GIT_HTTP_EXPORT_ALL 
    SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER 
    ScriptAliasMatch \ 
     "(?x)^/(.*/(HEAD | \ 
      info/refs | \ 
      objects/(info/[^/]+ | \ 
      [0-9a-f]{2}/[0-9a-f]{38} | \ 
      pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ 
      git-(upload|receive)-pack))$" \ 
     "/usr/lib/git-core/git-http-backend/$1" 
    Alias /git /var/www/git 
    <Directory /usr/lib/git-core> 
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
     AllowOverride None 
     Require all granted 
    </Directory> 
</VirtualHost> 

하는 것으로 I 내 보고서를 보내고 달려 간다.

find/-name git-http-backend/usr/lib/git-core/git-http-backend

다음, /var/www/git/의 내부 내가 디렉토리 myrepo.git을 생성 등을 설정을 보여줍니다

sudo git init --bare --shared 
sudo cp hooks/post-update.sample hooks/post-update 
sudo git update-server-info 

다음으로, 나는 아파치 소유자에게 디렉토리의 소유권을 변경해야합니다 (임 말했다). 뭔가를 실행하는 두 rootwww-data처럼 보이기 때문에

root 3087 0.0 0.4 73688 4928 ? Ss 02:37 0:00 /usr/sbin/apache2 -k start 
www-data 3455 0.0 0.5 362836 5852 ? Sl 03:13 0:00 /usr/sbin/apache2 -k start 
www-data 3456 0.0 0.5 362836 5852 ? Sl 03:13 0:00 /usr/sbin/apache2 -k start 
git 3531 0.0 0.0 14512 932 pts/1 S+ 03:19 0:00 grep -E --color=auto (apache|httpd) 

지금은 모르겠지만, 현재 WWW 데이터 (어쩌면 그것이 있어야로 소유권을 설정하기로 결정했습니다 : ps aux | egrep '(apache|httpd)'를 실행하면 다음과 반환 뿌리?).

sudo chown -R www-data:www-data . 

가 나는 또한 전체 경로가에 속하는 가지고 읽기 기억하는 것 : www가 데이터의 그룹은 내가 그 소유권을 설정하는 데 사용 (내 생각) 그래서

$ id www-data 
uid=33(www-data) gid=33(www-data) groups=33(www-data) 

또한 www가 데이터입니다

: 그래서 그냥 좋은 측정을위한 아파치 사용자는 본인은 myrepo를 복제하려고 내 localmachine에서 지금
sudo chown -R www-data:www-data /var/www 

설정

fatal: unable to access 'http://<ip-address>/myrepo.git/': The requested URL returned error: 503 

아무도 임 잘못하고 무엇을 볼 수 :

그리고 오류는 무엇입니까?

답변

0
거기에 자식/URL이 포함되어야 의미한다

Alias /git /var/www/git 
:

git clone http://<ip-address>/git/myrepo.git 

내가이 Apache configuration

+0

그래 이러한 별칭이 표시되지 않습니다, 나는 복사 별칭이 [이 답변에서 ] (http://stackoverflow.com/a/26734934/3486338) 나는 그것이 필요한지 확실하지 않습니다. 나는 주된 문제가 권한 문제라고 생각한다. 나는 디렉토리 소유권을'root'로 바꿨지 만 지금은 복제 할 수 있지만 다시 밀어 올릴 수는 없다. 나는 그것 [이 게시물] (http://stackoverflow.com/questions/6448242/git-push-error-insufficient-permission-for-adding-an-object-to-repository-datab)와 유사하다고 생각합니다. – bradimus