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?
I've had the same problem too in OpenSuse 11.4. In my case (and I suspect this was the case for the initial poster, who is also an opensuse user), the problem turned out to be this AppArmor thing, which I know very little about.
Here's some points I noticed that led to the eventual solution:
...
/srv/git/ r,
/srv/git/** r,
...
...
/home/myname/srv r,
/home/myname/srv/** r,
...
All should be fine now :)
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.
I had the same problem. "404 no projects found" but the config was good. Apache cached the 404-response and did not run the cgi-script again:
Edit your gitweb config file found here: /etc/gitweb.conf
And change the 10th line that starts "our $projectroot" to be:
our $projectroot = "/path/to/your/git/root"
then restart your webserver, this will tell you if your webserver config setting the GIT_PROJECT_ROOT is actually working.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With