I have gitweb and gitolite installed. I can configure a repo for gitweb access and it appears in the "projects.list" file but the repo is not listed by gitweb in the browser.
I've been searching and searching but can't find what I am missing to make this work.
My gitweb.conf contains
$git_temp = "/tmp";
# The directories where your projects are. Must not end with a slash.
$projectroot = "/srv/git/repositories";
$projects_list = "/srv/git/projects.list";
My .gitolite.rc contains
$PROJECTS_LIST = $ENV{HOME} . "/projects.list";
I've checked and the projects.list file goes get updates as per changes to the gitlite config once that is pushed back to the repo. So I think it's just gitweb not seeing the list and acting on it, but I can't figure out know why.
I just get the gitweb page with "404 - No projects found" where the project list should be.
UPDATE:
I found that in my case the problem was caused by incorrect Apache config. I had followed http://git@boron/testing.git. I had the following in my VirtualHost:
# Make sure we can execute gitweb okay
<Directory "/srv/http/gitweb">
Options ExecCGI
AllowOverride None
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
Order allow,deny
Allow from all
</Directory>
This executed gitweb.cgi directly, as the httpd user and without any environment settings. I replaced this block with an explicit call to my suexec wrapper:
# Call GitoWeb cgi via suexec wrapper for relevant URLs
ScriptAliasMatch "^/$" /srv/http/git-suexec/gitweb.cgi.suexec-wrapper
And that fixed my problem.
As the OP mentions in the comment, you need to make sure your VirtulaHost in the Apache config calls gitweb.cgi with the right parameters/environment variables:
Here is my
httpd.conf
for that service:Notice how it will avoid
ScriptAliasMatch
and how it does setGIT_HTTP_BACKEND
.Original answer:
Here is my
gitweb.conf.pl
:Replace the @H@ by your path where your
.gitolite
,.gitoliterc
,repositories
,project.list
files are.Note how I defined
$ENV{GL_BINDIR}
: I didn't comment the second definition, because in my case I did a non-root installation, hence the:Make sure to have a
gitweb_config.perl
with:That is what will make the link between
gitweb
and the extragitweb.conf.pl
which will call gitolite.