

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
1 message in ru.sysoev.nginxFast cgi and form values| From | Sent On | Attachments |
|---|---|---|
| tom wang | Jun 12, 2007 12:59 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Fast cgi and form values | Actions... |
|---|---|---|
| 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
_____________________________________________________________________________ Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail







