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?
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.