Rechercher une page de manuel
Plack::Handler::FCGI.3pm
Langue: en
Version: 2010-05-14 (ubuntu - 24/10/10)
Section: 3 (Bibliothèques de fonctions)
NAME
Plack::Handler::FCGI - FastCGI handler for PlackSYNOPSIS
# Run as a standalone daemon plackup -s FCGI --listen /tmp/fcgi.sock --daemonize --nproc 10 # Run from your web server like mod_fastcgi #!/usr/bin/env plackup -s FCGI my $app = sub { ... }; # Roll your own my $server = Plack::Handler::FCGI->new( nproc => $num_proc, listen => $listen, detach => 1, ); $server->run($app);
DESCRIPTION
This is a handler module to run any PSGI application as a standalone FastCGI daemon or a .fcgi script.OPTIONS
- listen
-
listen => '/path/to/socket' listen => ':8080'
Listen on a socket path, hostname:port, or :port.
- port
- listen via TCP on port on all interfaces (Same as "listen => ":$port"")
- leave-umask
- Set to 1 to disable setting umask to 0 for socket open
- nointr
- Do not allow the listener to be interrupted by Ctrl+C
- nproc
- Specify a number of processes for FCGI::ProcManager
- pid
- Specify a filename for the pid file
- manager
- Specify a FCGI::ProcManager sub-class
- daemonize
- Daemonize the process.
- keep-stderr
- Send STDERR to STDOUT instead of the webserver
WEB SERVER CONFIGURATIONS
nginxThis is an example nginx configuration to run your FCGI daemon on a Unix domain socket and run it at the server's root URL (/).
http { server { listen 3001; location / { set $script ""; set $path_info $uri; fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_param SCRIPT_NAME $script; fastcgi_param PATH_INFO $path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param REQUEST_URI $request_uri; fastcgi_param SEREVR_PROTOCOL $server_protocol; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; } } }
If you want to host your application in a non-root path, then you should mangle this configuration to set the path to "SCRIPT_NAME" and the rest of the path in "PATH_INFO".
See <http://wiki.nginx.org/NginxFcgiExample> for more details.
Apache mod_fastcgi
You can use "FastCgiExternalServer" as normal.
FastCgiExternalServer /tmp/myapp.fcgi -socket /tmp/fcgi.sock
See <http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer> for more details.
lighttpd
To host the app in the root path, you're recommended to use lighttpd 1.4.23 or newer with "fix-root-scriptname" flag like below.
fastcgi.server = ( "/" => (( "socket" => "/tmp/fcgi.sock", "check-local" => "disable" "fix-root-scriptname" => "enable", ))
If you use lighttpd older than 1.4.22 where you don't have "fix-root-scriptname", mouting apps under the root causes wrong "SCRIPT_NAME" and "PATH_INFO" set. Also, mouting under the empty root ("") or a path that has a trailing slash would still cause weird values set even with "fix-root-scriptname". In such cases you can use Plack::Middleware::LighttpdScriptNameFix to fix it.
To mount in the non-root path over TCP:
fastcgi.server = ( "/foo" => (( "host" = "127.0.0.1" "port" = "5000" "check-local" => "disable" ))
It's recommended that your mount path does NOT have the trailing slash. If you really need to have one, you should consider using Plack::Middleware::LighttpdScriptNameFix to fix the wrong PATH_INFO values set by lighttpd.
SEE ALSO
PlackContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre