使用lighttpd的git-http-backend无法访问存储库

时间:2013-11-26 17:44:46

标签: git webserver lighttpd

我正在尝试在我的网络服务器上设置一个git repo。 因为我不想给每个人ssh访问权限,所以我想使用http-backend。

以下是我使用的lighttpd的配置:

$HTTP["host"] =~ "git.domain.org" {
  alias.url               += ( "/git" => "/usr/lib/git-core/git-http-backend")
  # prevent a request to "/git" from causing a 500 error (no PATH_INFO)
  url.rewrite-once         = ( "^/git$" => "/git/" )

  $HTTP["url"] =~ "^/git/" {
    # turn on CGI unconditionally for this URL
    cgi.assign = ( "" => "" )
    setenv.add-environment = (
      "GIT_PROJECT_ROOT" => "/home/<username>/git/",
      "GIT_HTTP_EXPORT_ALL" => ""
    )
  }
}

尝试克隆(git clone http://git.domain.org/git/test.git)时,会出现以下错误:

fatal: http://git.domain.org/git/test.git/info/refs not valid: is this a git repository?

响应回购放在/home/username/git/test.git。

任何想法如何解决这个问题? 当我尝试在租用的网络服务器上执行此操作时,我没有超级用户访问权限。

1 个答案:

答案 0 :(得分:0)

如果您正在运行opensuse,因为您的gitroot不在/ srv / git中,您需要更新apparmor以允许读取您的gitrepo。

编辑/etc/apparmor.d/usr.share.git-web.gitweb.cgi 并将/ home / username / git和/ home / username / git / **添加到现有列表中。