3 use Plack
::App
::CGIBin
;
5 use Plack
::Middleware
::Debug
;
6 use Plack
::App
::Directory
;
10 # override configuration from startup script below:
11 # (requires --reload option)
13 $ENV{PLACK_DEBUG
} = 1; # toggle debugging
15 # memcache change requires restart
16 $ENV{MEMCACHED_SERVERS
} = "localhost:11211";
17 #$ENV{MEMCACHED_DEBUG} = 0;
19 $ENV{PROFILE_PER_PAGE
} = 1; # reset persistant and profile counters after each page, like CGI
20 #$ENV{INTRANET} = 1; # usually passed from script
22 #$ENV{DBI_AUTOPROXY}='dbi:Gofer:transport=null;cache=DBI::Util::CacheMemory'
40 use Devel
::Size
0.77; # 0.71 doesn't work for Koha
41 my $watch_capture_regex = '(C4|Koha)';
45 map { s/^.*$watch_capture_regex/$1/; s/\//::/g; s/\
.pm
$//; $_ } # fix paths
46 grep { /$watch_capture_regex/ }
49 warn "# watch_for_size ",join(' ',@watch);
53 my $CGI_ROOT = $ENV{INTRANET
} ?
$ENV{INTRANETDIR
} : $ENV{OPACDIR
};
54 warn "# using Koha ", $ENV{INTRANET
} ?
'intranet' : 'OPAC', " CGI from $CGI_ROOT\n";
55 my $app=Plack
::App
::CGIBin
->new(root
=> $CGI_ROOT);
57 return [ 302, [ Location
=> '/cgi-bin/koha/' . ( $ENV{INTRANET
} ?
'mainpage.pl' : 'opac-main.pl' ) ] ];
62 # please don't use plugins which are under enable_if $ENV{PLACK_DEBUG} in production!
63 # they are known to leek memory
64 enable_if
{ $ENV{PLACK_DEBUG
} } 'Debug', panels
=> [
65 qw(Environment Response Timer Memory),
66 # optional plugins (uncomment to enable) are sorted according to performance implact
67 # [ 'Devel::Size', for => \&watch_for_size ], # https://github.com/dpavlin/p5-plack-devel-debug-devel-size
68 # [ 'DBIProfile', profile => 2 ],
69 # [ 'DBITrace', level => 1 ], # a LOT of fine-graded SQL trace
70 # [ 'Profiler::NYTProf', exclude => [qw(.*\.css .*\.png .*\.ico .*\.js .*\.gif)] ],
73 # don't enable this plugin in production, since stack traces reveal too much information
74 # about system to potential attackers!
75 enable_if
{ $ENV{PLACK_DEBUG
} } 'StackTrace';
77 # this enables plackup or starman to serve static files and provide working plack
78 # setup without need for front-end web server to serve static files
79 enable_if
{ $ENV{INTRANETDIR
} } "Plack::Middleware::Static",
80 path
=> qr{^/(intranet|opac)-tmpl/},
81 root
=> "$ENV{INTRANETDIR}/koha-tmpl/";
83 mount
"/cgi-bin/koha" => $app;