Configurare gitweb / apache2


10

Di recente ho iniziato a memorizzare il codice, che scrivo su un server locale che ho a casa.

Speravo di avviare un'istanza gitweb a casa in modo da poter vedere i commit e tenere traccia dei progressi con gli altri compagni di squadra.

Ho provato tutorial di server online senza fortuna. Vorrei accedere a gitwebexample.com/git

Vorrei che il mio codice fosse inserito /code/git

Gradirei qualsiasi aiuto! Per favore, cerca di essere il più esplicito possibile, perché chiaramente non so cosa sto facendo. Ho letto tonnellate di articoli.

Per favore e grazie.

Risposte:


6

La parte gitweb:

Devi installare il pacchetto con gitweb sudo apt-get install gitweb

Quindi devi modificare il file di configurazione di gitweb di apache

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

cambia la linea Alias /gitweb /usr/share/gitweb in

Alias /git /usr/share/gitweb

apri il /etc/gitweb.conffile:

devi cambiare la linea $projectroot ".."in $projectroot "/code/git"

e cambia qualsiasi altra riga contenente /gitwebad /git esempio

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

per

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

quindi ricaricare il tuo server web apache con sudo /etc/init.d/apache2 horse-reload

La stessa parte GIT :

Consiglio vivamente l'uso della gitosi ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )

RICORDA se uso gitosis la linea $projectrootin /etc/gitweb.confdeve essere

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

Puoi trovare informazioni dettagliate su come impostare la gitosi su http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

descrivere la configurazione completa della gitosi è troppo lungo per questa risposta.

Se hai bisogno di ulteriore aiuto sulla gitosi, inviami un commento

Per risolvere i problemi di autorizzazione di apache, potrebbe essere necessario:

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

qual è la differenza tra git e gitosi.
myusuf3,

gitosis è uno script per configurare l'hosting git sicuro. (autentica gli utenti con ssh e roba.) è piuttosto avanti con uno speciale repository git che contiene una configurazione. In questa configurazione è possibile configurare gli altri repository git
aatdark

questo è interessante per me. potresti modificare la tua risposta per includere la configurazione della gitosi?
myusuf3,

scie.nti.st/2007/11/14/… è molto dettagliato (l'ho usato per me stesso). Se riscontri un problema in un solo passaggio,
scrivimi

0

Ecco cosa ho fatto per configurare gitwebUbuntu 14.04 - con SSL e autenticazione degli utenti del sistema con pwauth. Per impostazione predefinita, gitwebutilizza a /etc/gitweb.conf, che prevede i gitprogetti in /var/lib/git.

Quindi ho provato a inserire i miei gitrepository qui, quindi in questo esempio non dobbiamo cambiare /etc/gitweb.conf- il mio /var/lib/gitaspetto è questo:

$ 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

Quindi, oltre ai tuoi repository, dovresti anche inserire un link simbolico /usr/share/gitweb/gitweb.cgiin questa directory ...

Quindi, è possibile utilizzare quanto segue come /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>

E finalmente puoi fare:

# 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

Successivamente, gitwebdovrebbe essere disponibile su https://localhost/gitweb/(ad esempio, https://localhost/gitweb/?p=testrepo.git;a=summary); e dovresti essere in grado di clonare (nel caso di un certificato SSL autofirmato) con:

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.