Gitweb

Hy,

I am having a hard time getting cgi (gitweb) to work.
That’s the relefvant part of my config:

location ~ /git(/.*)
{
include /etc/nginx/fastcgi_params;

fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_index gitweb.cgi;

fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
  fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/gitweb.cgi;

}

That’s nginx output:

2011/12/02 13:40:37 [error] 6046#0: *1 FastCGI sent in stderr: “Cannot
get script name, is DOCUMENT_ROOT and SCRIPT_NAME set and is the script
executable?” while reading response header from upstream,

I am using debian squeeze. Any idea what I am doing wrong?

Posted at Nginx Forum:

On Fri, Dec 02, 2011 at 08:46:49AM -0500, CGIMan wrote:

Hi there,

I am having a hard time getting cgi (gitweb) to work.
That’s the relefvant part of my config:

nginx doesn’t “do” cgi, but it does do fastcgi. So you are using a
separate program to map between the two…

fastcgi_pass unix:/var/run/fcgiwrap.socket;
  fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/gitweb.cgi;

That’s nginx output:

2011/12/02 13:40:37 [error] 6046#0: *1 FastCGI sent in stderr: “Cannot
get script name, is DOCUMENT_ROOT and SCRIPT_NAME set and is the script
executable?” while reading response header from upstream,

…and it looks like that program cares about SCRIPT_NAME and
DOCUMENT_ROOT, and presumably not about SCRIPT_FILENAME.

So I’d guess that you want to remove the SCRIPT_FILENAME line, and
replace it with

fastcgi_param SCRIPT_NAME gitweb.cgi;
fastcgi_param DOCUMENT_ROOT /usr/lib/cgi-bin;

Your fcgiwrap program may have more documentation on precisely what
parameters it expects and needs. Possibly there should be an extra “/”,
either at the end of one param or at the start of the other.

Good luck,

f

Francis D. [email protected]