Search code examples
gitweb

Configuring GitWeb - 404 - No projects found


I'm configuring gitweb in my system via Apache in OpenSUSE (non-virtual host). However, I get the following error: 404 - No projects found.

/etc/gitweb.conf

# path to git projects (<project>.git)
$projectroot = "/home/zhijian/gitweb";

# directory to use for temp files
$git_temp = "/tmp";

# target of the home link on top of all pages
#$home_link = $my_uri || "/";

# html text to include at home page
$home_text = "/gitweb/static/indextext.html";

# file with project list; by default, simply scan the projectroot dir.
$projects_list = $projectroot;

# stylesheet to use
$stylesheet = "/gitweb/static/gitweb.css";

# logo to use
$logo = "/gitweb/static/git-logo.png";

# the 'favicon'
$favicon = "/gitweb/static/git-favicon.png";

/etc/apache2/conf.d/gitweb.conf

Alias /gitweb "/home/zhijian/gitweb"

<Directory "/home/zhijian/gitweb">
    Options +Indexes +ExecCGI +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    AddHandler cgi-script .cgi
    DirectoryIndex gitweb.cgi

</Directory>

I added a soft link in the gitweb folder to link gitweb.cgi and the static folder. The Apache error log shows gitweb.cgi: Can't opendir(/home/zhijian/gitweb): Permission denied, but the permissions on the gitweb folder has been set to 755. Does anybody have an idea what might be causing this issue?


Solution

  • The gitweb cgi has to have the same owner as the repo you're scanning. That is to say, if your $projectroot is www-data:www-data then gitweb.cgi has to be www-data:www-data too.

    In addition, the directories under $projectroot also have to have the same permissions. You should be able to do a chown -R www-data:www-data . which should help. You'll want to look at permissions as well as ownership, but that is trickier and you'll want to make sure you've got it right and haven't opened any security holes.