1 message in ru.sysoev.nginxFast cgi and form values
FromSent OnAttachments
tom wangJun 12, 2007 12:59 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Fast cgi and form valuesActions...
From:tom wang (toma@public.gmane.org)
Date:Jun 12, 2007 12:59:23 am
List:ru.sysoev.nginx

Hi,

This is probably a stupid question but anyway here it goes.

I have an old perl cgi program that I need to make work with nginx. I don't want to modify the program in question (it was programed by somebody else and is one of those completely unreadable perl program).

To try to use it with nginx I tried to do the following after reading http://wiki.codemongers.com/NginxSimplePerlCGI

Nginx configuration: location ~ .cgi$ { fastcgi_pass 127.0.0.1:1025; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $document_root; 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 DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx;

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; }

and I use the following perl script started with spawn-fcgi from lighttpd:

#use CGI::Fast; use FCGI;

END() { } BEGIN() { } *CORE::GLOBAL::exit = sub { die "fakeexit\nrc=".shift()."\n"; }; eval q{exit}; if ($@) { exit unless $@ =~ /^fakeexit/; } ;

sub mainloop() { while (FCGI::accept() >= 0) { my $output = `cd $ENV{DOCUMENT_ROOT} && perl $ENV{SCRIPT_FILENAME} 2>&1`; print($output) if $output;

} }

mainloop();

I know it's evil and it's completely annihilating the point of using fastcgi but well....

Now it seemed to work fine, but after more testing, I found out that, while get parameters are passed through the request_url environment variable, the form values are not passed. Is there anyway to solve this, did I forget to set an environment variable in my nginx configuration file?

Thanks a lot, and sorry if the questions is too stupid Regards, Tom

Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail