gitweb - 配置 GitWeb - 404 - 未找到项目

标签 gitweb

我正在通过 OpenSUSE(非虚拟主机)中的 Apache 在我的系统中配置 gitweb。但是,我收到以下错误: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>

我在 gitweb 文件夹中添加了一个软链接(soft link)来链接 gitweb.cgi 和静态文件夹。 Apache 错误日志显示 gitweb.cgi: Can't opendir(/home/zhijian/gitweb): Permission denied ,但 gitweb 文件夹的权限已设置为 755。有人知道可能导致此问题的原因吗?

最佳答案

我在 OpenSuse 11.4 中也遇到了同样的问题。在我的情况下(我怀疑最初的发帖人就是这种情况,他也是一名 opensuse 用户),问题出在 AppArmor 上,我对此知之甚少。

以下是我注意到导致最终解决方案的一些要点:

  • 在 OpenSuse 中,安装了 git-web rpm 包,因此 $projectroot 默认为“/srv/git ”文件夹
  • 如果你在这个“/srv/git/... ”子文件夹中添加你的 git 存储库,那么一切正常
  • 如果您决定选择其他位置,例如“/home/myname/srv/git/”,那么它会失败,尽管按照其他帖子中的建议将所有者设置为 wwwrun:www
  • 这里的问题是 AppArmor ,这似乎对允许应用程序执行的操作设置了更严格的政策
  • 执行“ rpm -ql git-web ”将显示一个名为:“/etc/apparmor.d/usr.share.git-web.gitweb.cgi
  • 的文件
  • 用 su/sudo 打开这个文件,你可以编辑它
  • 在这里,你会看到这些行:

  • ...
    /srv/git/ r,
    /srv/git/** r,
    

    ...
  • 将这些更改为包含您的 git 存储库的父文件夹的路径,例如,如果您将它们存放在“/home/myname/srv/git/”中,则使用“”/home/myname/srv/ "父文件夹,例如:

  • ...
    /home/myname/srv r,
    /home/myname/srv/** r,
    

    ...
  • 将更改保存到文件
  • 我认为您还必须将此父文件夹的所有者更改为 wwwrun:www,例如“ sudo chown -R wwwrun:www srv/
  • 使用“ sudo rcapparmor 重启 ”重新启动 AppArmor

  • 现在一切都应该好了:)

    关于gitweb - 配置 GitWeb - 404 - 未找到项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10275536/

    相关文章:

    git - 如何让 Jenkins 连接到 git 仓库

    gitweb - 使用 gitweb 发布多个 git 存储库

    重定向时,curl/wget 无法解析与浏览器相同的 URL

    perl - Gitweb:如何像github一样自动以html格式显示markdown文件

    linux - Gitweb 显示不正确

    sockets - Nginx connect() 到 unix :/var/run/fcgiwrap. 套接字失败

    gitweb 和每个项目的 http 身份验证

    Gitweb 找不到存储库 "No such projects found"

    windows - 使用 MSysgit 的 Perl intrepretor 在 Windows 上的 Apache 下 GitWeb 非常慢