Debian+;Gitolite+;Gitweb=404-未找到任何项目

Debian+;Gitolite+;Gitweb=404-未找到任何项目,debian,gitolite,gitweb,Debian,Gitolite,Gitweb,这是一个你经常会发现的话题。然而,我尝试了两天以来的一切,我的想法。希望有人能帮我 总的来说,我做了以下工作: apt get安装gitolite gitweb 在gitolite.conf中添加了回购协议(见下文) 将用户www数据添加到gitolite组 手动创建项目列表(见下文) 设置symlink/var/www/gitweb->/usr/share/gitweb 设置gitweb vhost(见下文) 当我现在浏览到gitweb时,我看到一条消息“404-找不到任何项目”。日志文件

这是一个你经常会发现的话题。然而,我尝试了两天以来的一切,我的想法。希望有人能帮我

总的来说,我做了以下工作:

  • apt get安装gitolite gitweb
  • 在gitolite.conf中添加了回购协议(见下文)
  • 将用户www数据添加到gitolite组
  • 手动创建项目列表(见下文)
  • 设置symlink/var/www/gitweb->/usr/share/gitweb
  • 设置gitweb vhost(见下文)
当我现在浏览到gitweb时,我看到一条消息“404-找不到任何项目”。日志文件中没有错误消息

1)Gitolite目录:

drwxr-xr-x  5 gitolite gitolite 4096 Mai  6 20:03 .
drwxr-xr-x 43 root     root     4096 Mai  6 18:12 ..
drwxr-x---  8 gitolite gitolite 4096 Mai  6 18:12 .gitolite
-rw-r-xr--  1 gitolite gitolite 4217 Mai  6 19:43 .gitolite.rc.new
-rwxr-xr-x  1 gitolite gitolite   25 Mai  6 19:59 projects.list
drwxr-xr-x  6 gitolite gitolite 4096 Mai  6 18:14 repositories
drwxr-x---  2 gitolite gitolite 4096 Mai  6 18:14 .ssh
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName git.example.org

    SetEnv GITWEB_CONFIG   /etc/gitweb.conf
    SetEnv GIT_PROJECT_ROOT /var/lib/gitolite/repositories

    DocumentRoot /var/www/gitweb

    <Directory /var/www/gitweb>
      Options FollowSymLinks ExecCGI
      AllowOverride All
      order allow,deny
      Allow from all
      AddHandler cgi-script .cgi

      DirectoryIndex index.cgi

      # Pretty gitweb URLs
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^.* /index.cgi/$0 [L,PT]
    </Directory>

    # Enable git clone over HTTP
    ScriptAliasMatch \
    "(?x)^/(.*/(HEAD | \
        info/refs | \
        objects/(info/[^/]+ | \
        [0-9a-f]{2}/[0-9a-f]{38} | \
        pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
        git-(upload|receive)-pack))$" \
        /usr/lib/git-core/git-http-backend/$1

    ErrorLog /var/log/apache2/git-error.log
    CustomLog /var/log/apache2/git-access.log combined
</VirtualHost>
2)gitolite.conf

repo    gitolite-admin
        RW+ = admin

repo    repo1
        RW+ = admin
        R   = @all

repo    repo2
        RW+ = admin
        R   = @all
# path to git projects (<project>.git)
$projectroot = "/var/lib/gitolite/repositories";

@git_base_url_list = ("git://git.example.org", "http://git.example.org");

$site_name = "git.example.com";

# require export flag
$export_ok = "git-daemon-export-ok";
$strict_export = 1;

# 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 = "indextext.html";

# file with project list; by default, simply scan the projectroot dir.
$projects_list = "/var/lib/gitolite/projects.list";

# stylesheet to use
#@stylesheets = ("static/gitweb.css");

# javascript code for gitweb
#$javascript = "static/gitweb.js";

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

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

# git-diff-tree(1) options to use for generated patches
#@diff_opts = ("-M");
@diff_opts = ();
3).gitolite.rc.new(为什么在这里。新增?安装了gitolite并带有apt get install gitolite)

4)/var/lib/gitolite/projects.list

repo1.git
repo2.git
5)/var/lib/gitolite/repositories

drwxr-xr-x 7 gitolite gitolite 4096 Mai  6 18:14 repo1.git
drwxr-xr-x 7 gitolite gitolite 4096 Mai  6 18:14 repo1.git
6)gitweb虚拟主机:

drwxr-xr-x  5 gitolite gitolite 4096 Mai  6 20:03 .
drwxr-xr-x 43 root     root     4096 Mai  6 18:12 ..
drwxr-x---  8 gitolite gitolite 4096 Mai  6 18:12 .gitolite
-rw-r-xr--  1 gitolite gitolite 4217 Mai  6 19:43 .gitolite.rc.new
-rwxr-xr-x  1 gitolite gitolite   25 Mai  6 19:59 projects.list
drwxr-xr-x  6 gitolite gitolite 4096 Mai  6 18:14 repositories
drwxr-x---  2 gitolite gitolite 4096 Mai  6 18:14 .ssh
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName git.example.org

    SetEnv GITWEB_CONFIG   /etc/gitweb.conf
    SetEnv GIT_PROJECT_ROOT /var/lib/gitolite/repositories

    DocumentRoot /var/www/gitweb

    <Directory /var/www/gitweb>
      Options FollowSymLinks ExecCGI
      AllowOverride All
      order allow,deny
      Allow from all
      AddHandler cgi-script .cgi

      DirectoryIndex index.cgi

      # Pretty gitweb URLs
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^.* /index.cgi/$0 [L,PT]
    </Directory>

    # Enable git clone over HTTP
    ScriptAliasMatch \
    "(?x)^/(.*/(HEAD | \
        info/refs | \
        objects/(info/[^/]+ | \
        [0-9a-f]{2}/[0-9a-f]{38} | \
        pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
        git-(upload|receive)-pack))$" \
        /usr/lib/git-core/git-http-backend/$1

    ErrorLog /var/log/apache2/git-error.log
    CustomLog /var/log/apache2/git-access.log combined
</VirtualHost>

服务器管理员webmaster@localhost
ServerName git.example.org
SetEnv GITWEB_CONFIG/etc/GITWEB.conf
SetEnv GIT_PROJECT_ROOT/var/lib/gitolite/repositories
DocumentRoot/var/www/gitweb
选项如下symlinks ExecCGI
允许超越所有
命令允许,拒绝
通融
AddHandler cgi script.cgi
DirectoryIndex.cgi
#漂亮的gitweb URL
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^.*/index.cgi/$0[L,PT]
#通过HTTP启用git克隆
脚本别名匹配\
“(?x)^/(.*/(总目)\
信息/参考文献|\
对象/(信息/[^/]+|\
[0-9a-f]{2}/[0-9a-f]{38}|\
pack/pack-[0-9a-f]{40}\(pack | idx))|\
git-(上传|接收)-打包)$”\
/usr/lib/git-core/git-http-backend/$1
ErrorLog/var/log/apache2/git-error.log
CustomLog/var/log/apache2/git-access.log组合
7)/etc/gitweb.conf

repo    gitolite-admin
        RW+ = admin

repo    repo1
        RW+ = admin
        R   = @all

repo    repo2
        RW+ = admin
        R   = @all
# path to git projects (<project>.git)
$projectroot = "/var/lib/gitolite/repositories";

@git_base_url_list = ("git://git.example.org", "http://git.example.org");

$site_name = "git.example.com";

# require export flag
$export_ok = "git-daemon-export-ok";
$strict_export = 1;

# 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 = "indextext.html";

# file with project list; by default, simply scan the projectroot dir.
$projects_list = "/var/lib/gitolite/projects.list";

# stylesheet to use
#@stylesheets = ("static/gitweb.css");

# javascript code for gitweb
#$javascript = "static/gitweb.js";

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

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

# git-diff-tree(1) options to use for generated patches
#@diff_opts = ("-M");
@diff_opts = ();
git项目的路径(.git) $projectroot=“/var/lib/gitolite/repositories”; @git_base_url_list=(“git://git.example.org", "http://git.example.org"); $site\u name=“git.example.com”; #需要导出标志 $export\u ok=“git daemon export ok”; $strict_export=1; #用于临时文件的目录 $git_temp=“/tmp”; #所有页面顶部主页链接的目标 #$home_link=$my_uri | |“/”; #要包含在主页中的html文本 #$home_text=“indextextext.html”; #与项目清单一起归档;默认情况下,只需扫描projectroot目录。 $projects_list=“/var/lib/gitolite/projects.list”; #要使用的样式表 #@样式表=(“static/gitweb.css”); #gitweb的javascript代码 #$javascript=“static/gitweb.js”; #要使用的徽标 #$logo=“static/git logo.png”; #“法维康” #$favicon=“static/git favicon.png”; #用于生成修补程序的git diff树(1)选项 #@diff_opts=(“-M”); @diff_opts=();
多谢各位

为了完整起见-我在2013年5月6日的回答:-)

这一切都是为了gitolite v2

我终于让它工作起来了:首先在gitolite.conf中的所有R中添加了“gitweb守护程序”,然后在vhost文件中添加了“SetEnv GIT_HTTP_BACKEND/usr/lib/GIT core/GIT HTTP BACKEND”。但我不知道这两个改变是否都是必要的


在我的例子中,这只是一个
/home/gitolite/repositories/
目录的权限问题


或者可能是umask设置有问题–根据默认umask是
0700
,对于cgit/gitweb works
0027

我怀疑这是一个旧的gitolite v2,不用麻烦了。您可以很容易地从:I use的克隆安装最新的gitolite(v3)。再加上一个和就足够了。谢谢你的建议,@VonC。不过,我终于让它工作了:首先在gitoline.conf中的所有R中添加了“gitweb守护程序”,然后在vhost文件中添加了“SetEnv GIT_HTTP_BACKEND/usr/lib/GIT core/GIT HTTP BACKEND”。但我不知道这两个改变是否都是必要的。太好了!您可以将其添加为答案,甚至可以选择它。但请务必提及它是针对gitolite v2的。