gitweb / apache2 설정


10

나는 최근에 내가 집에있는 로컬 서버에 쓰는 코드를 저장하기 시작했다.

집에서 gitweb 인스턴스를 시작하여 커밋을보고 다른 팀 동료와의 진행 상황을 추적하고 싶었습니다.

운없이 온라인으로 서버 자습서를 시도했습니다. gitweb에 의해 액세스되기를 원합니다.example.com/git

내 코드를 배치하고 싶습니다 /code/git

어떤 도움을 주셔서 감사합니다! 내가하고있는 일을 분명히 알지 못하기 때문에 가능한 한 명시 적으로 노력하십시오. 나는 많은 기사를 읽었다.

감사합니다

답변:


6

gitweb 부분 :

gitweb 패키지를 설치해야합니다. sudo apt-get install gitweb

그런 다음 아파치 gitweb 설정 파일을 편집해야합니다

$EDITOR /etc/apache2/conf.d/gitweb

Alias /gitweb /usr/share/gitweb 을 바꾸다

Alias /git /usr/share/gitweb

열려있는 /etc/gitweb.conf파일을 :

당신은 라인 $projectroot ".."을 변경해야 합니다 $projectroot "/code/git"

함유하고 다른 라인 변경 /gitweb/git 예를

$stylesheet = "/gitweb/gitweb.css";

$stylesheet = "/git/gitweb.css";

그런 다음 아파치 웹 서버를 다시로드하십시오. sudo /etc/init.d/apache2 horse-reload

GIT 부분 자체 :

나는 gitosis 사용을 강력히 권장합니다 ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-cure-way )

기억 당신이 경우 사용 gitosis 선을 $projectroot/etc/gitweb.conf있어야한다

$projectroot = "/home/git/repositories/";

gitosis 설정 방법에 대한 자세한 내용은 http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-cure-way 에서 확인할 수 있습니다 .

전체 답신 설정을 설명하는 것은이 답변에 너무 오래입니다.

gitosis에 대한 추가 도움이 필요하면 의견을 보내주십시오.

아파치 권한 문제를 해결하려면 다음을 수행해야합니다.

adduser www-data git
chgrp -R git /home/git/repositories

git과 gitosis의 차이점은 무엇입니까?
myusuf3

gitosis는 안전한 git 호스팅을 설정하는 스크립트입니다. (ssh와 물건으로 사용자를 인증하십시오.) 구성이 포함 된 특수 자식 저장소를 사용하여 꽤 진보적입니다. 이 설정에서 다른 자식 저장소를 설정할 수 있습니다
aatdark

저에게 흥미 롭습니다. gitosis 설정을 포함하도록 답변을 수정할 수 있습니까?
myusuf3

scie.nti.st/2007/11/14/… 는 매우 상세합니다 (내가 직접 사용했습니다). 한 단계에서 문제가 발생하면 의견을
보내

0

gitwebSSL을 사용하여 시스템 사용자를 인증하여 Ubuntu 14.04 에서 설정 한 작업은 다음과 같습니다 pwauth. 기본적으로의 프로젝트를 gitweb사용 /etc/gitweb.conf하는를 사용합니다 .git/var/lib/git

내가 넣어하려고 그래서 git이 예에서, 그래서 여기에 REPOS을 우리는 변경할 필요가 없습니다 /etc/gitweb.conf- 내 /var/lib/git모습을 다음과 같이 :

$ ls -la /var/lib/git/
total 12
drwxrwxrwx  3 root          root          4096 Apr  9 16:01 .
drwxr-xr-x 75 root          root          4096 Apr  7 17:31 ..
lrwxrwxrwx  1 myuser        myuser        28 Apr  9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x  7 myuser        www-data      4096 Apr 10 17:50 testrepo.git

따라서 repos 옆 /usr/share/gitweb/gitweb.cgi에이 디렉토리에서도 symlink가 필요합니다 ...

그런 다음 다음을 다음과 같이 사용할 수 있습니다 /etc/apache2/sites-available/gitw-ssl.conf.

<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    ServerName localhost
    HeaderName HEADER
    DocumentRoot /var/www/html

    LogLevel info
    ErrorLog ${APACHE_LOG_DIR}/error-gw.log
    CustomLog ${APACHE_LOG_DIR}/access-gw.log combined

    SSLEngine on
    SSLCertificateFile  /etc/apache2/ssl/my.crt
    SSLCertificateKeyFile /etc/apache2/ssl/my.key
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
      SSLOptions +StdEnvVars
    </Directory>

    <IfModule mod_authnz_external.c>
      # old style:
      AddExternalAuth pwauth /usr/sbin/pwauth
      SetExternalAuthMethod pwauth pipe
      # new style:
      #DefineExternalAuth pwauth pipe /usr/sbin/pwauth
    </IfModule>

    # as more specific, /gitweb/static should go first
    Alias /gitweb/static /usr/share/gitweb/static
    Alias /gitweb /var/lib/git
    # gitweb.cgi alias is no dice - symlink is needed:
    Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
    <Directory /var/lib/git>
      Options +FollowSymlinks +ExecCGI
      SSLRequireSSL
      AuthType basic
      AuthName "Private git repository"
      AuthBasicProvider external
      AuthExternal pwauth
      Require valid-user
      AddHandler cgi-script .cgi
      DirectoryIndex gitweb.cgi
    </Directory>

    ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
    <Directory "/usr/lib/git-core/">
      SetEnv GIT_PROJECT_ROOT /var/lib/git
      SetEnv GIT_HTTP_EXPORT_ALL
      Options +ExecCGI
      SSLRequireSSL
      AuthType basic
      AuthName "Private git repository"
      AuthBasicProvider external
      AuthExternal pwauth
      Require valid-user
    </Directory>

  </VirtualHost>
</IfModule>

그리고 마침내 당신은 할 수 있습니다 :

# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload

그 후에 gitwebhttps://localhost/gitweb/(예 :)에서 사용할 수 있어야합니다 https://localhost/gitweb/?p=testrepo.git;a=summary. 다음을 사용하여 (자체 서명 SSL 인증서의 경우) 복제 할 수 있어야합니다.

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.