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(见下文)
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 works0027
我怀疑这是一个旧的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的。