Project

General

Profile

ApplicationsUsingLighttpd » History » Revision 9

Revision 8 (Anonymous, 2005-11-01 07:49) → Revision 9/34 (Anonymous, 2005-11-09 17:48)

= Applications Using lighttpd = 

 Lighttpd works nicely with most web-projects. To get them setup easily some are providing special lighttpd setups. 

  * [http://www.rubyonrails.org/ RubyOnRails] 
  * [http://drupal.org/node/20766 Drupal] 
  * [http://hieraki.simplicio.com/read/book/1 Lighttpd: The painless way] 
  * [http://wordpress.org/support/topic/27541 Wordpress] 
  * [http://laitsas.com/wordpress/3/rewrite-rules/ Wordpress with permalink structure] 
  * [http://trac.lighttpd.net/trac/wiki/TracInstall Trac] 
  * [http://article.gmane.org/gmane.comp.web.lighttpd/1752 Mailman] 
  * [http://bradchoate.com/weblog/2005/08/26/mt-32-and-lighttpd-fastcgi Moveable Type 3.2] 

 == Using a Perl dispatcher instead of mod_perl == 

 I just received a mail from Alex Shah <ashah@teamsoa.com>: 

 {{{ 
 I thought you might like to include this in the distribution: 

 #!/usr/bin/perl 
 use strict; 
 use CGI::Fast; 
 use Embed::Persistent; 
 { 
     my $p = Embed::Persistent->new(); 
     while (new CGI::Fast) { 
         my $filename = $ENV{SCRIPT_FILENAME}; 
         my $package = $p->valid_package_name($filename); 
         my $mtime; 
         if ($p->cached($filename, $package, \$mtime)) 
         { 
             eval {$package->handler;}; 
         } 
         else 
         { 
             $p->eval_file($ENV{SCRIPT_FILENAME}); 
         } 
     } 
 } 

 Here's the lighttpd.conf: 

 fastcgi.server = ( ".pl" => 
     (( "socket"     => "/tmp/application.fcgi.socket", 
        "bin-path" => "/Users/ashah/docroot/dispatch.fcgi", 
     )) 
 ) 
 }}} 

 There is sometime problem to compile ExtUtils from CPAN which provide Embed::Persistent, so you can only download them and copy lib/Embed to your perl path. You can also find some info at [http://search.cpan.org/dist/perl/pod/perlembed.pod#Maintaining_a_persistent_interpreter] 

 


 == multiple RubyOnRails on one server == 

 http://wiki.rubyonrails.com/rails/show/HowtoDeployMoreThanOneRailsAppOnOneMachine describes this on Apache, here we do it on lighty: 

 {{{ 
 $HTTP["url"] =~ "^/appOne" { 
   url.rewrite = ( "^/appOne(/.*)$" => "/appOne/public$1" ) 
   fastcgi.server = ( "dispatch.fcgi" => (( "bin-path" ... ))) 
   server.error-handler-404 = "/appOne/dispatch.fcgi" 
 } 
 $HTTP["url"] =~ "^/appTwo" { 
   url.rewrite = ( "^/appTwo(/.*)$" => "/appTwo/public$1" ) 
   fastcgi.server = ( "dispatch.fcgi" => (( "bin-path" ... ))) 
   server.error-handler-404 = "/appTwo/dispatch.fcgi" 
 } 

 }}}