setup issue: cgit only shows summary page
John Keeping
john at keeping.me.uk
Fri Jan 16 18:05:45 CET 2015
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.
More information about the CGit
mailing list