Project

General

Profile

Actions

ApplicationsUsingLighttpd » History » Revision 9

« Previous | Revision 9/34 (diff) | Next »
Anonymous, 2005-11-09 17:48
add info where to get persistent.pl


= Applications Using lighttpd =

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

Using a Perl dispatcher instead of mod_perl

I just received a mail from Alex Shah <>:

{{{
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"
}

}}}

Updated by Anonymous over 18 years ago · 9 revisions