<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
	
		<title>philpep's blog - tag lighttpd</title>
		<atom:link href="http://blog.philpep.org/feed/tag/lighttpd/rss2" rel="self" type="application/rss+xml" />
		<description>philpep&#39;s blog - tag lighttpd rss</description>
	<link>http://blog.philpep.org</link>
	<language>fr</language>
		<lastBuildDate>Sat, 18 Dec 2010 00:00:00 GMT</lastBuildDate>
	<generator>Pblog</generator>
		<item>
			<title>Mon réseau</title>
			<link>http://blog.philpep.org/post/mon-reseau</link>
			<guid>http://blog.philpep.org/post/mon-reseau</guid>
			<pubDate>Sat, 18 Dec 2010 00:00:00 GMT</pubDate>
			<description>&lt;p&gt;Ça faisait un petit moment que je devais refaire &lt;a href=&#34;http://philpep.org&#34;&gt;ma homepage&lt;/a&gt;. C&#39;est chose faite (rechargez la page si vous avez encore l&#39;ancienne en cache, c&#39;est full statique avec un trèèèès long ttl).&lt;/p&gt;
&lt;p&gt;J&#39;y décris un peu ce qui se passe dans les trois serveurs que j&#39;administre, pour moi, pour les amis, pour des logiciels libres comme &lt;a href=&#34;http://wmfs.info&#34;&gt;wmfs&lt;/a&gt; et pour les causes que je défends avec une association, &lt;a href=&#34;http://cerf-gresigne.org&#34;&gt;le cerf de grésigne&lt;/a&gt; et &lt;a href=&#34;http://wikileaks.philpep.org&#34;&gt;un miroir wikileaks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En modifiant ma map nagios j&#39;ai réussi à faire quelque chose de pas mal pour mieux visualiser la chose :&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;network&#34; src=&#34;http://philpep.org/philpep.png&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Ça fait maintenant deux ans que l&#39;aventure a commencée, objectif auto-hébergement et auto-formation à l&#39;administration systèmes. Je dois dire que ça a plutôt bien marché puisque l&#39;infrastructure et mes connaissances n&#39;ont cessés de progresser.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fin 2008 Pendant les 3 premiers mois philpep.org n&#39;existait que sur mon portable (sous gentoo, allumé 24h/24), c&#39;était un serveur git pour partager mon code.&lt;/li&gt;
&lt;li&gt;Début 2009 j&#39;ai récupéré un vieux pentium III gracieusement donné par une association Toulousaine sur lequel j&#39;ai installé FreeBSD (7.0 puis 7.1) qui a commencé à faire du mail.&lt;/li&gt;
&lt;li&gt;Mai 2009 je récupère un pentium 4 avec plus de RAM.&lt;/li&gt;
&lt;li&gt;Fin 2009 je m&#39;achète une &lt;a href=&#34;http://www.pcengines.ch/alix2d3.htm&#34;&gt;alix2d3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Début 2010 je prends une machine virtuelle chez lost-oasis (sous FreeBSD puis Debian) pour fournir un MX et DNS secondaire.&lt;/li&gt;
&lt;li&gt;Juillet 2010 je m&#39;achète une nouvelle machine avec plus de RAM et qui consomme moins&lt;/li&gt;
&lt;li&gt;Fin 2010, la machine virtuelle est maintenant chez Hetzner, et sous FreeBSD 8.1 avec un vpn entre mes deux locations.&lt;/li&gt;
&lt;/ul&gt;</description>
		</item>
		<item>
			<title>installation serveur git avec gitosis, lighttpd et cgit</title>
			<link>http://blog.philpep.org/post/installation-serveur-git-avec-gitosis-lighttpd-et-cgit</link>
			<guid>http://blog.philpep.org/post/installation-serveur-git-avec-gitosis-lighttpd-et-cgit</guid>
			<pubDate>Wed, 11 Aug 2010 03:35:42 GMT</pubDate>
			<description>&lt;p&gt;Pour faire revivre un peu ce blog déserté (en particulier par moi même), un petit billet sur la config de mon serveur git.&lt;/p&gt;
&lt;p&gt;Les dépôts git peuvent se trouver sous deux formes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une forme pour le développeur/contributeur, c&#39;est ce qu&#39;on obtient avec git clone&lt;/li&gt;
&lt;li&gt;Une forme pour le serveur, que l&#39;on a avec git clone --bare&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En fait on clone toujours depuis un dépôt bare, de la même manière on push sur un dépôt bare.&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;% git clone --bare git://git.wmfs.info/wmfs.git
Initialized empty Git repository in /tmp/wmfs.git/
remote: Counting objects: 5011, done.
remote: Compressing objects: 100% (1096/1096), done.
remote: Total 5011 (delta 3909), reused 5011 (delta 3909)
Receiving objects: 100% (5011/5011), 844.06 KiB, done.
Resolving deltas: 100% (3909/3909), done.

% ls wmfs.git
branches  config  description  HEAD  hooks  info  objects  packed-refs  refs

% git clone ./wmfs.git
Initialized empty Git repository in /tmp/wmfs/.git/

% ls wmfs
CMakeLists.txt  cmake_uninstall.cmake.in  COPYING  rc  README  src  TODO  wmfs.1  wmfs.desktop  wmfs.doxygen.in  wmfsrc.in
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Dans ce dépôt bare il y a tout un tas de choses, notamment les hooks qui permettent de lancer des commandes avant/après un push et tout autre sortes d&#39;événements.&lt;/p&gt;
&lt;p&gt;Git permet de cloner/pusher depuis/vers des dépôts bare d&#39;au moins trois manières différentes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Par ssh&lt;/li&gt;
&lt;li&gt;Par le protocole git (sur le port 9418 par défaut)&lt;/li&gt;
&lt;li&gt;Par http&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour ssh, si la sécurité nécessite d&#39;avoir des droits par utilisateurs on peut utiliser &lt;a href=&#34;http://eagain.net/gitweb/?p=gitosis.git&#34;&gt;gitosis&lt;/a&gt; qui va créer un utilisateur git avec un ~git/.ssh/authorized_keys qui limite l&#39;accès aux utilisateurs.&lt;/p&gt;
&lt;p&gt;L&#39;install et l&#39;utilisation est simplisme, voyez la doc de gitosis pour faire des choses plus velues :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;% make -C /usr/ports/devel/py-gitosis install
% sudo -H -u git gitosis-init &amp;lt; /votre/clef/ssh/publique/id_rsa.pub
% git clone git@serveur:gitosis-admin.git
% cd gitosis-admin    
% &amp;gt;&amp;gt; gitosis.conf
[repo foo]
daemon = yes
^D
% git commit -a -m &amp;quot;Ajout depot foo&amp;quot; &amp;amp;&amp;amp; git push
% mkdir /tmp/foo &amp;amp;&amp;amp; cd /tmp/foo
% echo &amp;quot;foo&amp;quot; &amp;gt; bar
% git init
% git add bar
% git remote add origin git@serveur:foo.git
% git push origin master:refs/heads/master
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Et voilà votre premier dépot git.&lt;/p&gt;
&lt;p&gt;Bon là par ssh, seuls les utilisateurs autorisés pourront cloner. Il nous faut un moyen public pour permettre à quiconque de cloner.&lt;/p&gt;
&lt;p&gt;Par le protocole git c&#39;est très facile :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;% &amp;gt;&amp;gt; /etc/rc.conf
git_daemon_enable=&amp;quot;YES&amp;quot;
git_daemon_directory=&amp;quot;--base-path=/usr/local/git/repositories&amp;quot;
^D
% /usr/local/etc/rc.d/git_daemon start
# Testons par le protocole git
% git clone git://serveur/foo.git
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Mais si vous voulez offrir un service un peu plus complet comme &lt;a href=&#34;http://github.com&#34;&gt;github&lt;/a&gt;, il faut permettre le clone par http parce que si les utilisateurs sont derrière un firewall nazi qui laisse passer que le port 80 sortant ils ne pourrons pas contribuer à vos softs.&lt;/p&gt;
&lt;p&gt;Pour celà il suffit de configurer le serveur web qui sert /usr/local/git/repositories, ainsi nos amis nazis pourront faire du git clone http://serveur/foo.git.&lt;/p&gt;
&lt;p&gt;Allons y avec &lt;a href=&#34;http://lighttpd.net&#34;&gt;lighttpd&lt;/a&gt; puisqu&#39;il faut faire un choix.&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;% &amp;gt;&amp;gt; /usr/local/etc/lighttpd.conf
$HTTP[&amp;quot;host&amp;quot;] == &amp;quot;serveur&amp;quot; {
    server.document-root = &amp;quot;/usr/local/git/repositories&amp;quot;
}
% /usr/local/etc/rc.d/lighttpd reload
% git clone http://serveur/foo.git
# Arf ça marche pas, permission denied
% cd /usr/local/git/repositories
% chmod o+rx foo.git
% git clone http://serveur/foo.git
# Arf, ça marche toujours pas, il me cause d&amp;#39;un git update-server-info
% cd /usr/local/git/repositories/foo.git
% git update-server-info
% cp hooks/post-update.sample hooks/post-update
% git clone http://serveur/foo.git
\o/
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Bon et pour faire un peu plus &#34;pro&#34;, il nous faut un gitweb celui par défaut en perl me plait pas trop, je préfère nettement &lt;a href=&#34;http://hjemli.net/git/cgit/&#34;&gt;cgit&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;&lt;span class=&#34;c&#34;&gt;% make -C /usr/ports/devel/cgit&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;% &amp;gt;&amp;gt; /usr/local/etc/cgitrc&lt;/span&gt;
&lt;span class=&#34;n&#34;&gt;clone&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;prefix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serveur&lt;/span&gt;
&lt;span class=&#34;n&#34;&gt;virtual&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;
&lt;span class=&#34;n&#34;&gt;snapshots&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gz&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bz2&lt;/span&gt;

&lt;span class=&#34;n&#34;&gt;repo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;foo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;
&lt;span class=&#34;n&#34;&gt;repo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;usr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;local&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;repositories&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;foo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;
^&lt;span class=&#34;n&#34;&gt;D&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Comme on est malins, on va le mettre sur le même virtualhost. Et on va faire même encore plus fort, on va le mettre le gitweb ET le clone sur &lt;a href=&#34;http://serveur/foo.git&#34;&gt;http://serveur/foo.git&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour ça il faut matcher le client git dans la conf lighttpd :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;&lt;span class=&#34;nb&#34;&gt;$HTTP&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;host&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;serveur&amp;quot;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
    &lt;span class=&#34;k&#34;&gt;server.document-root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/usr/local/git/repositories&amp;quot;&lt;/span&gt;
    &lt;span class=&#34;c1&#34;&gt;# Et si ce n&amp;#39;est pas le client git&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;$HTTP&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;useragent&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;!~&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;^git&amp;quot;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
         &lt;span class=&#34;k&#34;&gt;server.document-root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/usr/local/www/cgit/&amp;quot;&lt;/span&gt;
         &lt;span class=&#34;k&#34;&gt;index.file.name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;cgit.cgi&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
         &lt;span class=&#34;k&#34;&gt;cgi.assign&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;cgi.git&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
         &lt;span class=&#34;k&#34;&gt;server.error-handler-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;404&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;cgit.cgi&amp;quot;&lt;/span&gt;
         &lt;span class=&#34;k&#34;&gt;url.rewrite-once&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;^/([^?/]+/[^?]*)?(?:\?(.*))?$&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/cgit.cgi?url=$1&amp;amp;$2&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
     &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;(D&#39;ailleurs je me demande si y&#39;a pas un morceau de code qui fait ça tout seul dans cgit... à voir).&lt;/p&gt;
&lt;p&gt;Voilà, mettez vos petits softs sur le nainternet et attendez les contributions ;)&lt;/p&gt;
&lt;p&gt;Si vous voulez aller encore plus loin, mettez &lt;a href=&#34;http://blog.philpep.org/post/Un-bot-IRC-a-la-CIA-en-python&#34;&gt;un bot irc qui parle quand ça push sur le dépôt git&lt;/a&gt;.&lt;/p&gt;</description>
		</item>
		<item>
			<title>Lancer lighttpd dans un environnement propre</title>
			<link>http://blog.philpep.org/post/Lancer-lighttpd-dans-un-environnement-propre</link>
			<guid>http://blog.philpep.org/post/Lancer-lighttpd-dans-un-environnement-propre</guid>
			<pubDate>Thu, 28 Jan 2010 00:45:29 GMT</pubDate>
			<description>&lt;p&gt;Cela fait quelque temps que je vois mes &lt;a href=&#34;http://fr.wikipedia.org/wiki/Common_Gateway_Interface&#34;&gt;scripts cgi&lt;/a&gt; sous &lt;a href=&#34;http://www.lighttpd.net/&#34;&gt;lighttpd&lt;/a&gt; hériter de l&#39;environnement root (vous savez, les &lt;code&gt;export&lt;/code&gt; et autres &lt;code&gt;setenv&lt;/code&gt; dans votre &lt;code&gt;~/.$SHELLrc&lt;/code&gt;). Et si vous êtes un peu parano comme moi ou que vous avez des données sensibles dans votre environnement il peut s&#39;avérer utile de les cacher du script cgi.&lt;/p&gt;
&lt;p&gt;Pour cela j&#39;ai modifié mon &lt;code&gt;/usr/local/etc/rc.d/lighttpd&lt;/code&gt;, du coup j&#39;en ai même fait &lt;a href=&#34;http://www.freebsd.org/cgi/query-pr.cgi?pr=143302&#34;&gt;un bug report&lt;/a&gt; chez FreeBSD histoire que tout le monde en profite. Il permet même de spécifier certaines des variables d&#39;environnement que l&#39;on veut conserver (comme PATH qui est souvent utilisé dans les script cgi).&lt;/p&gt;
&lt;p&gt;Avec un peu de chance (et beaucoup de temps :&amp;gt;) il le prendrons et vous l&#39;aurez bientôt dans vos ports. Sinon faite le vous même à partir &lt;a href=&#34;http://www.philpep.org/pub/lighttpd_rc.patch&#34;&gt;du patch&lt;/a&gt; :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;cd /root
fetch http://www.philpep.org/pub/lighttpd_rc.patch
cd /usr/local/etc/rc.d/
patch -p0 &amp;lt; /root/lighttpd_rc.patch
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;L&#39;inconvénient c&#39;est qu&#39;il faut le refaire à chaque mise à jours de lighttpd.&lt;/p&gt;</description>
		</item>
		<item>
			<title>Gitweb fastcgi lighttpd et FreeBSD</title>
			<link>http://blog.philpep.org/post/Gitweb-fastcgi-lighttpd-et-FreeBSD</link>
			<guid>http://blog.philpep.org/post/Gitweb-fastcgi-lighttpd-et-FreeBSD</guid>
			<pubDate>Thu, 10 Sep 2009 22:04:31 GMT</pubDate>
			<description>&lt;p&gt;Vu la galère pour mettre en place un gitweb sous lighttpd en fastcgi, voici un petit mémo pour moi et j&#39;èspère qu&#39;il servira à d&#39;autres. (J&#39;explique sous FreeBSD mais ça peut être transposé facilement sur d&#39;autres OS)&lt;/p&gt;
&lt;p&gt;Donc, d&#39;abord mettre en place git et lighttpd :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;make -C /usr/ports/devel/git install clean
make -C /usr/ports/www/lighttpd install clean
&lt;span class=&#34;nb&#34;&gt;echo &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;lighttpd_enable&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&amp;quot;&lt;/span&gt;YES&lt;span class=&#34;se&#34;&gt;\&amp;quot;&lt;/span&gt; &amp;gt;&amp;gt; /etc/rc.conf
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ensuite j&#39;ai utilisé un script de la doc lighttpd.&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;fetch http://philpep.org/pub/perl-cgi
mv perl-cgi /usr/local/bin
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ce script utilise deux modules Perl qu&#39;il faut installer, le premier (CGI::Fast) est dans les ports FreeBSD, mais je n&#39;ai pas trouvé le second (Embed::Persistent) donc je l&#39;ai installé &#34;à la mano&#34;&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;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
&lt;span class=&#34;nb&#34;&gt;cd &lt;/span&gt;ExtUtils-Embed-1.14
perl Makefile.PL
make
make install
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ensuite la conf lighttpd : (je met tout dans /usr/local/www)&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;cp /usr/local/share/examples/git/gitweb/gitweb* /usr/local/www
cp /usr/local/share/examples/git/gitweb/*.png /usr/local/www
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Et ceci dans /usr/local/etc/lighttpd.conf&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;&lt;span class=&#34;c1&#34;&gt;# /usr/local/etc/lighttpd.conf&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.port&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;80&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.bind&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;10.0.0.3&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.username&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;www&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.groupname&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;www&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.document-root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/usr/local/www/&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.event-handler&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;freebsd-kqueue&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.pid-file&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/var/run/lighttpd.pid&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;index-file.names&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;gitweb.cgi&amp;quot;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;server.errorlog&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/var/log/error_log&amp;quot;&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;server.modules&lt;/span&gt;  &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;mod_setenv&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;mod_fastcgi&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;mod_rewrite&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;fastcgi.server&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;.cgi&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;
      &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;socket&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/tmp/application.fcgi.socket&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
         &lt;span class=&#34;s2&#34;&gt;&amp;quot;bin-path&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/usr/local/bin/perl-cgi&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
       &lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;setenv.add-environment&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;GITWEB_CONFIG&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/home/git/gitweb.conf&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;

&lt;span class=&#34;c1&#34;&gt;# Le petit rewrite qui fait bien&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;url.rewrite-once&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;^/([a-zA-Z]+.git)(.*)$&amp;quot;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;/gitweb.cgi/$1$2&amp;quot;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;mimetype.assign&lt;/span&gt;             &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;.png&amp;quot;&lt;/span&gt;          &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;quot;image/png&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;.css&amp;quot;&lt;/span&gt;          &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;c1&#34;&gt;# default mime type&lt;/span&gt;
      &lt;span class=&#34;s2&#34;&gt;&amp;quot;&amp;quot;&lt;/span&gt;              &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;quot;application/octet-stream&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Et voilà, un petit&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;&lt;span class=&#34;sr&#34;&gt;/usr/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;local&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/etc/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rc&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lighttpd&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description>
		</item>
	</channel>
</rss>

