Vu la galère pour mettre en place un gitweb sous lighttpd en fastcgi, voici un petit mémo pour moi et j'èspère qu'il servira à d'autres. (J'explique sous FreeBSD mais ça peut être transposé facilement sur d'autres OS)

Donc, d'abord mettre en place git et lighttpd :

make -C /usr/ports/devel/git install clean
make -C /usr/ports/www/lighttpd install clean
echo lighttpd_enable=\"YES\" >> /etc/rc.conf

Ensuite j'ai utilisé un script de la doc lighttpd, à déplacer dans /usr/local/bin

Ce script utilise deux modules Perl qu'il faut installer, le premier (CGI::Fast) est dans les ports FreeBSD, mais je n'ai pas trouvé le second (Embed::Persistent) donc je l'ai installé "à la mano"

make -C /usr/ports/www/p5-FastCGI install clean
fetch http://search.cpan.org/CPAN/authors/id/D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz
tar xvzf ExtUtils-Embed-1.14.tar.gz
cd ExtUtils-Embed-1.14
perl Makefile.PL
make
make install

Ensuite la conf lighttpd : (je met tout dans /usr/local/www)

cp /usr/local/share/examples/git/gitweb/gitweb* /usr/local/www
cp /usr/local/share/examples/git/gitweb/*.png /usr/local/www

Et ceci dans /usr/local/etc/lighttpd.conf

# /usr/local/etc/lighttpd.conf
server.port = 80
server.bind = "10.0.0.3"
server.username = "www"
server.groupname = "www"
server.document-root = "/usr/local/www/"
server.event-handler = "freebsd-kqueue"
server.pid-file = "/var/run/lighttpd.pid"
index-file.names = ( "gitweb.cgi" )
server.errorlog = "/var/log/error_log"

server.modules  = (
      "mod_setenv",
      "mod_fastcgi",
      "mod_rewrite",
      )

fastcgi.server = ( ".cgi" =>
      (( "socket" => "/tmp/application.fcgi.socket",
         "bin-path" => "/usr/local/bin/perl-cgi",
       ))
      )

setenv.add-environment = (
      "GITWEB_CONFIG" => "/home/git/gitweb.conf",
      )

# Le petit rewrite qui fait bien
url.rewrite-once = ( "^/([a-zA-Z]+.git)(.*)$" => "/gitweb.cgi/$1$2" )

mimetype.assign             = (
      ".png"          =>      "image/png",
      ".css"          =>      "text/css",
# default mime type
      ""              =>      "application/octet-stream",
      )

Et voilà, un petit

/usr/local/etc/rc.d/lighttpd start
comments powered by Disqus