Tag lighttpd
28/1/2010 Lancer lighttpd dans un environnement propre
Cela fait quelque temps que je vois mes scripts cgi sous lighttpd hériter de l'environnement root (vous savez, les export et autres setenv dans votre ~/.$SHELLrc). Et si vous êtes un peu parano comme moi ou que vous avez des données sensibles dans votre environnement il peut s'avérer utile de les cacher du script cgi.
Pour cela j'ai modifié mon /usr/local/etc/rc.d/lighttpd, du coup j'en ai même fait un bug report chez FreeBSD histoire que tout le monde en profite. Il permet même de spécifier certaines des variables d'environnement que l'on veut conserver (comme PATH qui est souvent utilisé dans les script cgi).
Avec un peu de chance (et beaucoup de temps :>) il le prendrons et vous l'aurez bientôt dans vos ports. Sinon faite le vous même à partir du patch :
cd /root fetch http://www.philpep.org/pub/lighttpd_rc.patch cd /usr/local/etc/rc.d/ patch -p0 < /root/lighttpd_rc.patch
L'inconvénient c'est qu'il faut le refaire à chaque mise à jours de lighttpd.
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