10 votes

Mise en place de gitweb/apache2

J'ai récemment commencé à stocker le code que j'écris sur un serveur local que j'ai chez moi.

J'espérais démarrer une instance gitweb à la maison pour pouvoir voir les commits et suivre les progrès avec mes autres coéquipiers.

J'ai essayé des tutoriels en ligne sur les serveurs, mais sans succès. Je voudrais que gitweb soit accessible par example.com/git

Je voudrais que mon code soit placé dans /code/git

J'apprécierais toute aide ! Merci d'être le plus explicite possible, car il est clair que je ne sais pas ce que je fais. J'ai lu des tonnes d'articles.

S'il vous plaît et merci.

6voto

Joshdan Points 126

En partie gitweb :

Vous devez installer le paquet gitweb avec sudo apt-get install gitweb

Ensuite, vous devez éditer le fichier de configuration d'apache gitweb

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

modifier la ligne Alias /gitweb /usr/share/gitweb à

Alias /git /usr/share/gitweb

ouvrir le /etc/gitweb.conf fichier :

vous devez modifier la ligne $projectroot ".." à $projectroot "/code/git"

et modifier toute autre ligne contenant /gitweb a /git par exemple

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

à

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

puis rechargez votre serveur web Apache avec sudo /etc/init.d/apache2 horse-reload

En Partie GIT même :

Je recommande vivement l'utilisation de gitosis. ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )

N'OUBLIEZ PAS si vous utiliser gitosis la ligne $projectroot en /etc/gitweb.conf doit être

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

Vous trouverez des informations détaillées sur l'installation de Gitosis à l'adresse suivante http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

La description de la configuration complète de Gitosis est trop longue pour cette réponse.

Si vous avez besoin d'aide sur Gitosis, envoyez-moi un commentaire.

Pour résoudre les problèmes de permission d'apache, il peut être nécessaire de faire :

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

0voto

sdbbs Points 1198

Voici ce que j'ai fait pour l'installation gitweb sur Ubuntu 14.04 - avec SSL et authentification des utilisateurs du système avec pwauth . Par défaut, gitweb utilise un /etc/gitweb.conf qui s'attend à ce que git projets en /var/lib/git .

J'ai donc essayé de mettre mon git ici, donc dans cet exemple nous n'avons pas besoin de changer /etc/gitweb.conf - mon /var/lib/git ressemble à ceci :

$ 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

Donc, à côté de vos dépôts, vous devez faire un lien symbolique entre /usr/share/gitweb/gitweb.cgi dans ce répertoire également...

Vous pouvez alors utiliser la formule suivante /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>

Enfin, vous pouvez le faire :

# 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

Après cela, gitweb devrait être disponible sur https://localhost/gitweb/ (par exemple, https://localhost/gitweb/?p=testrepo.git;a=summary ) ; et vous devriez pouvoir cloner (dans le cas d'un certificat SSL auto-signé) avec :

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X