Gitweb / apache2 kurulumu


10

Kısa süre önce evde depoladığım yerel bir sunucuya yazdığım kod depolamaya başladım.

Evde bir gitweb örneği başlatmayı umuyordum, böylece diğer takım arkadaşlarımla taahhütleri görebilir ve ilerlemeyi izleyebilirim.

Şanssız çevrimiçi sunucu eğitimlerini denedim. Gitweb'e erişilmesini istiyorumexample.com/git

Kodumun yerleştirilmesini istiyorum /code/git

Herhangi bir yardım için teşekkür ederiz! Lütfen olabildiğince açık olmaya çalışın, çünkü ne yaptığımı açıkça bilmiyorum. Tonlarca makale okudum.

Lütfen ve teşekkür ederim.

Yanıtlar:


6

Gitweb kısmı:

Gitweb paketini sudo apt-get install gitweb

Sonra apache gitweb config dosyasını düzenlemeniz gerekir

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

satırı Alias /gitweb /usr/share/gitweb olarak değiştir

Alias /git /usr/share/gitweb

açmak /etc/gitweb.confdosyayı:

satırı $projectroot ".."değiştirmelisin $projectroot "/code/git"

ihtiva eden herhangi bir başka hat değiştirmek /gitwebiçin /git , örneğin

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

için

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

sonra apache web sunucunuzu sudo /etc/init.d/apache2 horse-reload

GIT kısmı kendisi:

Gitosis kullanmanızı şiddetle tavsiye ediyorum ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )

UNUTMAYIN eğer kullanımı Gitosis hattı $projectrootiçinde /etc/gitweb.confolmak zorundadır

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

Gitozu nasıl kuracağınız hakkında ayrıntılı bilgileri http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way adresinde bulabilirsiniz.

tam gitoz düzeneğini tanımlamak bu cevap için çok uzun.

Eğer gitoz konusunda daha fazla yardıma ihtiyacınız varsa bana bir yorum bırakın

Apache izin sorunlarını gidermek için aşağıdakileri yapmanız gerekebilir:

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

git ve gitosis arasındaki fark nedir?
myusuf3

gitosis güvenli git hosting kurmak için bir betiktir. (kullanıcıları ssh ve benzeri öğelerle doğrulayın.) bir yapılandırma içeren özel bir git deposu ile oldukça ileride. Bu yapılandırmada diğer git depolarını yapılandırabilirsiniz
aatdark

bu benim için ilginç. yanıtınızı gitosis kurulumunu içerecek şekilde değiştirebilir misiniz?
myusuf3

scie.nti.st/2007/11/14/… çok detaylı (kendim için kullandım). Bir adımda bir sorunla karşılaşırsanız, bana bir yorum yazın
aatdark

0

İşte gitwebUbuntu 14.04'te SSL ve sistem kullanıcılarının kimlik doğrulaması ile kurulumlarımı yaptım pwauth. Varsayılan olarak, içinde projeleri bekleyen gitwebbir a kullanır ./etc/gitweb.confgit/var/lib/git

Bu yüzden gitdepolarımı buraya koymaya çalıştım , bu yüzden bu örnekte değişmek zorunda değiliz /etc/gitweb.conf- /var/lib/gitgörünüşüm şöyle:

$ 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

Yani, depolarınızın yanında, /usr/share/gitweb/gitweb.cgibu dizinde de symlink yapmanız gerekir ...

Ardından, aşağıdakileri kullanabilirsiniz /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>

Ve son olarak şunları yapabilirsiniz:

# 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

Bundan sonra gitweb, https://localhost/gitweb/(örneğin https://localhost/gitweb/?p=testrepo.git;a=summary); ve (kendinden imzalı bir SSL sertifikası olması durumunda) aşağıdakileri klonlayabilmeniz gerekir:

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.