Tag git
26/1/2010 git-daemon sous FreeBSD
Si vous avez un serveur git sous FreeBSD, vous aurez très rapidement des problèmes avec /usr/local/etc/rc.d/git_daemon, genre il démarre mal, et refuse de redémarrer.
En fait il suffit d'utiliser l'option --reuseaddr qui passe SO_REUSEADDR à setsockopt pendant la création du socket serveur. Du coup il peut redémarrer même si il y avait une connexion active sur le port.
En lisant le script rc, on peut même éviter de le modifier et devoir le refaire à chaque mise à jours de git, dans /etc/rc.conf
git_daemon_enable="YES" git_daemon_directory="--reuseaddr --base-path=/usr/home/git/repositories"
EDIT : ce n'est plus nécessaire maintenant PR ports/143275
10/9/2009 Gitweb fastcgi lighttpd et FreeBSD
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.
fetch http://philpep.org/pub/perl-cgi mv perl-cgi /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