git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: gitweb install

From
Jakub Narebski <jnareb@gmail.com>
Date
Nov 20, 2006, 01:32 UTC
Message-ID
<ejr0gi$ea8$1@sea.gmane.org>
In-Reply-To
<45610199.4030502@cc.jyu.fi>
lamikr wrote:
Show 25 quoted lines
> Hi
> 
> Following dummyuser test case (me :-) might be usefull for improving docs.
> I have read the gitweb/README but in addition of that I find out that
> there is really little documentation about installing gitweb
> except the Makefile & git-instaweb.sh itself.
> 
> I would like to install gitweb to /var/run/html/gitweb directory and
> after reading the git/INSTALL & gitweb/README
> I came to conclusion that something like following could work
> 
> 1) build git by changing some of the default gitweb configs as a user
>     make prefix=/usr all doc GITWEB_SITENAME='gitweb test' \
>          GITWEB_PROJECTROOT=/var/www/html/gitweb 
> 2) install git as a root after build
>     make prefix=/usr install install-doc
> 3) add following to apache config
>     <VirtualHost www:80>
>         ServerName my-web-page
>         DocumentRoot /gitweb
>         RewriteEngine on
>         RewriteRule ^/(.*\.git/(?!/?(info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
>         SetEnv    GITWEB_CONFIG    /etc/gitweb.conf
>     </VirtualHost>
> 4) move git repository (kernel for example) to /var/www/html/gitweb
It should be enough to symlink it, given appropriate setup.
Show 5 quoted lines
> 5) restart apache
> 6) open browser to http://my-web-page/gitweb
> 
> Obviously something failed, as after step 2, I do not have either the
> /etc/gitweb.conf or gitweb scripts under directory /var/www/html/gitweb

First, "make install" does not install the gitweb, as the place where it should be installed depends from configuration to configuration. By the way, you may compile ony gitweb using "make gitweb/gitweb.cgi" with appropriate params. So 2.1) step would be to manually copy gitweb.cgi and gitweb.css at least, perhaps also git-logo.png and git-favicon.png.

Second, you have to set up gitweb.cgi as a CGI script, or as legacy mod_perl script. I have for example in /var/www/cgi-bin symlink named gitweb to directory with gitweb.cgi, gitweb.css etc. and in /var/www/perl symplink to the same place.

The CGI configuration for Apache2 is (simplest case, I'd appreciate better solutions):

 LoadModule cgi_module modules/mod_cgi.so
 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
 <Directory "/var/www/cgi-bin">
    Options Indexes FollowSymlinks ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
 </Directory>
and can use for example http://localhost/cgi-bin/gitweb/gitweb.cgi

The mod_perl configuration for Apache2 is (again, I'd appreciate pointing out better solution):

 # mod_perl configuration, c.f. CGI version
 #
 Alias /perl "/var/www/perl"
 <Directory "/var/www/perl">
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options Indexes FollowSymlinks +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
 </Directory>

If you don't have conf.d/perl.conf, then you have also to add to your apache config the line

 LoadModule perl_module modules/mod_perl.so
Well, mod_perl configuration could also be in the conf.d/perl.conf file.

I can use http://localhost/perl/gitweb/gitweb.cgi for mod_perl driven gitweb.

HTH
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Previous: lamikrNext: lamikr
Message 2 of 3 in “gitweb install”
  1. lamikrNov 20, 2006
  2. Jakub NarebskiNov 20, 2006
  3. lamikrNov 20, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.