Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Plack::App::CGIBin(3) User Contributed Perl DocumentationPlack::App::CGIBin(3)

NAME
       Plack::App::CGIBin - cgi-bin replacement	for Plack servers

SYNOPSIS
	 use Plack::App::CGIBin;
	 use Plack::Builder;

	 my $app = Plack::App::CGIBin->new(root	=> "/path/to/cgi-bin")->to_app;
	 builder {
	     mount "/cgi-bin" => $app;
	 };

	 # Or from the command line
	 plackup -MPlack::App::CGIBin -e 'Plack::App::CGIBin->new(root => "/path/to/cgi-bin")->to_app'

DESCRIPTION
       Plack::App::CGIBin allows you to	load CGI scripts from a	directory and
       convert them into a PSGI	application.

       This would give you the extreme easiness	when you have bunch of old CGI
       scripts that is loaded using cgi-bin of Apache web server.

HOW IT WORKS
       This application	checks if a given file path is a perl script and if
       so, uses	CGI::Compile to	compile	a CGI script into a sub	(like
       ModPerl::Registry) and then run it as a persistent application using
       CGI::Emulate::PSGI.

       If the given file is not	a perl script, it executes the script just
       like a normal CGI script	with fork & exec. This is like a normal	web
       server mode and no performance benefit is achieved.

       The default mechanism to	determine if a given file is a Perl script is
       as follows:

       o   Check if the	filename ends with ".pl". If yes, it is	a Perl script.

       o   Open	the file and see if the	shebang	(first line of the file)
	   contains the	word "perl" (like "#!/usr/bin/perl"). If yes, it is a
	   Perl	script.

       You can customize this behavior by passing "exec_cb" callback, which
       takes a file path to its	first argument.

       For example, if your perl-based CGI script uses lots of global
       variables and such and are not ready to run on a	persistent
       environment, you	can do:

	 my $app = Plack::App::CGIBin->new(
	     root => "/path/to/cgi-bin",
	     exec_cb =>	sub { 1	},
	 )->to_app;

       to always force the execute option for any files.

AUTHOR
       Tatsuhiko Miyagawa

SEE ALSO
       Plack::App::File	CGI::Emulate::PSGI CGI::Compile	Plack::App::WrapCGI

       See also	Plack::App::WrapCGI if you compile one CGI script into a PSGI
       application without serving CGI scripts from a directory, to remove
       overhead	of filesystem lookups, etc.

perl v5.32.0			  2018-02-10		 Plack::App::CGIBin(3)

NAME | SYNOPSIS | DESCRIPTION | HOW IT WORKS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Plack::App::CGIBin&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help