setup issue: cgit only shows summary page

Peter Wu peter at lekensteyn.nl
Fri Jan 16 18:48:48 CET 2015


On Friday 16 January 2015 17:05:45 John Keeping wrote:
> On Fri, Jan 16, 2015 at 05:30:56PM +0100, Lukas Tribus wrote:
> > I've a probably stupid setup issue, I just can't figure it out and need
> > a fresh set of eyes:
> > I compiled cgit from source (@d6c405077) and installed it
> > on a Ubuntu VM together with nginx through fcgiwrapper.
> > 
> > When I open cgit in my browser it recognizes the repositories, etc,
> > but I only ever see the summary page with the list of repositories.
> > 
> > If I click on one of them ("/cgit/<repo>/" or "/cgit/cgit.cgi/<repo>/")
> > it does open in the browser but the content is always the summary page of
> > all repositories, never the actual repository itself.
> > 
> > Repositories are correctly discovered and for example the "idle" column shows
> > correct values, but I can't seem to open one of those repositories.
> > 
> > 
> > I triple checked file permissions, that doesn't appear to be the problem.
> > 
> > I've also attached strace to the fcgiwrapper process monitoring its cgit
> > children, and I don't see any permission problems.
> > 
> > 
> > 
> > cgitrc is:
> > #virtual-root=/cgit/
> > css=/cgit/cgit.css
> > logo=/cgit/cgit.png
> > favicon=/cgit/favicon.ico
> > remove-suffix=1
> > scan-path=/srv/git
> > 
> > and the relevant part of the nginx config is:
> > 
> > root /var/www/htdocs;
> > 
> > location /cgit/ {
> > 		try_files $uri @cgitcgi;
> > }
> > 
> > location @cgitcgi {
> > 		fastcgi_param   DOCUMENT_ROOT $document_root;
> > 		fastcgi_param   SCRIPT_NAME /cgit/cgit.cgi;
> > 		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   SERVER_PROTOCOL         $server_protocol;
> > 		fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
> > 		fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
> > 		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;
> > 		fastcgi_param   HTTPS                   $https if_not_empty;
> > 		fastcgi_pass        unix:/var/run/fcgiwrap.socket;
> > }
> 
> I think you either need to set PATH_INFO here *or* to avoid setting
> SCRIPT_NAME.  CGit uses SCRIPT_NAME to decide whether to use path URLs
> or the "url=" query parameter.  If it's using path URLs then you need to
> have PATH_INFO specified as the full path (which must start with
> $SCRIPT_NAME).
> 
> Note that I've never used fcgiwrapper so I don't know whether it will
> set either of those automatically; I'm just going on how CGit behaves.

fcgiwrap uses SCRIPT_FILENAME (if set) and the concatenation of
DOCUMENT_ROOT and SCRIPT_NAME otherwise.

Suggestions for the nginx config: generally a default, sane set of
fastcgi parameters is available in the fastcgi_params file which you can
include with "include fastcgi_params;".

For a working fcgiwrap + nginx config, see:
http://lists.zx2c4.com/pipermail/cgit/2013-April/001307.html
-- 
Kind regards,
Peter
https://lekensteyn.nl




More information about the CGit mailing list