A instalar o GitWeb - como
git instaweb-d webrick -- start
funciona exactamente como descrito no tutorial at ... http://lostechies.com/jasonmeridth/2009/09/27/git-instaweb/
No entanto, depois de ler outros fóruns, parece que o instaweb não está destinado a ser usado e em vez disso eu deveria configurar GitWeb para correr em Apache. Sou bastante novo nos Apaches, por isso não estou muito familiarizado com o que devia estar a fazer. Tenho seguido o tutorial em http://unix-heaven.org/node/31 Mas acho que não preciso de tudo. Acho que a única coisa que preciso de fazer é pôr o seguinte no meu httpd.ficheiro conf...<VirtualHost *:80>
ServerAdmin <a href="mailto:[email protected]">[email protected]</a>
ServerName git.example.org
ServerAlias git-pub.example.org
RedirectMatch ^/$ /gitweb.cgi
SetEnv GITWEB_PROJECTROOT /cvs/codeRepository/git
Alias /gitweb.js /srv/www/gitweb/static/gitweb.js
Alias /gitweb.css /srv/www/gitweb/static/gitweb.css
Alias /git-logo.png /srv/www/gitweb/static/git-logo.png
Alias /git-favicon.png /srv/www/gitweb/static/git-favicon.png
ScriptAlias / "/srv/www/gitweb/"
<Directory "/srv/www/gitweb/">
AllowOverride None
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</Directory>
ErrorLog "/var/log/apache2/httpd-git-pub.example.org-access.log"
CustomLog "/var/log/apache2/httpd-git-pub.example.org-error.log" common
</VirtualHost>
onde /srv/www/ gitweb / contém....
$:/srv/www/gitweb # ls -ltr
total 252
-rwx------ 1 root root 247917 Feb 27 15:02 gitweb.cgi
drwx------ 2 root root 4096 Feb 27 15:03 static
a configuração que especifiquei acima funciona ou preciso de especificar ? E se assim for em que url vou aceder ao GitWeb? Preciso de serverName, serverAlias e serverAdmin?
Obrigado pela ajuda.1 answers
O url que você usaria seria
http://git.example.org
Mas não tenho tanta certeza sobre a tua configuração. O meu é mais simples , e eu recomendo sempre um endereço como http(s)://yourServer/gitweb, em vez de apenas http(s)://yourServer/: se precisar de adicionar mais Serviços, poderá adicionar mais url de raiz (como /gitweb
).
Para um acesso http rápido sem autenticação:
# GitWeb on 80
Listen 80
<VirtualHost *:80>
ServerName git.example.org
ServerAlias git-pub.example.org
SetEnv GITWEB_PROJECTROOT /cvs/codeRepository/git
SetEnv GIT_HTTP_BACKEND "/usr/local/apps/git/libexec/git-core/git-http-backend"
DocumentRoot /srv/www/gitweb
Alias /gitweb /srv/www/gitweb
<Directory /srv/www/gitweb>
Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
LogLevel Info
ErrorLog "/var/log/apache2/gitweb_error_log"
TransferLog "/var/log/apache2/gitweb_access_log"
</VirtualHost>
Nota: no meu ficheiro de configuração original (que é um modelo, com valores de substituição como @PORT_HTTP_GITWEB@
, Eu não usei GITWEB_PROJECTROOT
Porque estou a ligar para o Gitolite, que sabe onde estão os repos Git.
Eu defini uma variável na gitweb.conf
O arquivo , porém, que desempenha o mesmo papel que GITWEB_PROJECTROOT
, de acordo com a documentação do gitweb:
$projectroot::
A localização absoluta do sistema de ficheiros que será antecedida da localização do projecto; a localização do repositório é
$projectroot/$project
.
Configurado como$GITWEB_PROJECTROOT
durante a instalação.
Esta variável tem de ser configurada correctamente para o gitweb encontrar repositorio.Por exemplo, se {[14] } for definido como
/srv/git
colocando o seguinte no ficheiro de configuração do gitweb:
----------------------------------------------------------------------------
our $projectroot = "/srv/git";
----------------------------------------------------------------------------
Depois:
------------------------------------------------
http://git.example.com/gitweb.cgi?p=foo/bar.git
------------------------------------------------
E o seu equivalente baseado em path_ INFO
------------------------------------------------
http://git.example.com/gitweb.cgi/foo/bar.git
------------------------------------------------
Irá mapear o caminho ' / srv/git/foo / bar.git ' no sistema de ficheiros.
Actualização de agosto de 2018, para o Git 2.19 (T3 2018, cinco anos depois)
"git instaweb
" foi ajustado para correr melhor com o Apache mais recente ligado RedHat based distros.
Ver commit 757b124 (07 Aug 2018), e commit 1976311 (08 Aug 2018) por Sebastian Kisela (skisela
).
(fundido por Junio C Hamano -- gitster
-- in commit 93ded33 , 20 ago 2018)
git-instaweb
: fixar a configuração do apache2 com o apache > = 2, 4A configuração gerada pelo apache2 falha com o apache > = 2.4. O registo de erros Estados:
AH00136: Server MUST relinquish startup privileges before accepting connections. Please ensure mod_unixd or other system security module is loaded. AH00016: Configuration Failed
Corrigir isto Carregando o módulo
unixd
.
Isto também funciona comhttpd
mais velho, por isso nãoIfVersion
condicional é necessário. (Ensaiado com httpd-2.2.15 em CentOS-6.)