2013-05-06 82 views
2

這是一個你經常發現的話題。但是,自從2天以來,我嘗試了一切,並且我正在用盡想法。希望有人能幫助我。Debian + Gitolite + Gitweb = 404 - 沒有發現項目

總的來說,我做了以下內容:

  • 易於得到安裝gitolite的GitWeb
  • 加入到回購gitolite.conf(見下文)
  • 添加用戶WWW的數據組gitolite
  • 手動創建projects.list(見下文)
  • 設置symlink/var/www/gitweb - >/usr/share/gitweb
  • 設置gitweb vhost(見下文)

當我現在瀏覽到http://git.example.org我看到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 

2)gitolite.conf

repo gitolite-admin 
     RW+ = admin 

repo repo1 
     RW+ = admin 
     R = @all 

repo repo2 
     RW+ = admin 
     R = @all 

3).gitolite.rc.new(爲什麼在這裏。新所附?使用apt-get安裝gitolite安裝gitolite)

# ------------------------------------------------------------------------------ 
# DO NOT TOUCH THIS SECTION! 
# ------------------------------------------------------------------------------ 

$GL_ADMINDIR=$ENV{HOME} . "/.gitolite"; 
$GL_CONF="$GL_ADMINDIR/conf/gitolite.conf"; 
$GL_KEYDIR="$GL_ADMINDIR/keydir"; 
$GL_CONF_COMPILED="$GL_ADMINDIR/conf/gitolite.conf-compiled.pm"; 

# DO NOT CHANGE THE NEXT FOUR LINES UNLESS YOU REALLY KNOW WHAT YOU'RE DOING. 
# These variables are set automatically by the install method you choose. 
#   (PACKAGE MAINTAINERS: PLEASE READ doc/packaging.mkd) 
$GL_PACKAGE_CONF = "/usr/share/gitolite/conf"; 
$GL_PACKAGE_HOOKS = "/usr/share/gitolite/hooks"; 

# ------------------------------------------------------------------------------ 
# most often used/changed variables 
# ------------------------------------------------------------------------------ 
$GL_WILDREPOS = 0; 
$PROJECTS_LIST = $ENV{HOME} . "/projects.list"; 
# $WEB_INTERFACE = "gitweb"; 
# $GITWEB_URI_ESCAPE = 0; 
$REPO_UMASK = 0022; 

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

repo1.git 
repo2.git 

5)的/ var/lib中/ gitolite /儲存庫

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虛擬主機:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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> 

7)/etc/gitweb.conf

# 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 =(); 

非常感謝您!

+0

我懷疑這是一箇舊的gitolite v2,不用擔心它。你可以從[gitolite repo](https://github.com/sitaramc/gitolite)的克隆中輕鬆安裝最新的gitolite(v3):我使用['install_or_update_gitolite.sh'](https:// github的.com/VonC/compileEverything /斑點/主/ gitolite/install_or_update_gitolite.sh)。再加上[gitweb.conf.pl](https://github.com/VonC/compileEverything/blob/master/gitweb/gitweb.conf.pl.tpl)和[httpd.conf](https:// github.com/VonC/compileEverything/blob/master/apache/env.conf.tpl#L49-L93)應該足夠了。 – VonC 2013-05-06 20:17:02

+0

感謝您的建議,@VonC。 Hower,我得到它最後工作:首先添加「gitweb守護進程」在gitoline.conf中的所有R和第二個添加「SetEnv GIT_HTTP_BACKEND/usr/lib/git-core/git-http-backend」到虛擬主機文件。 不知道這兩個更改是否有必要。 – haggis 2013-05-06 20:35:25

+0

優秀!您可以添加該答案作爲答案,甚至選擇它。不過要提到的是gitolite v2。 – VonC 2013-05-06 21:15:06

回答

0

只是爲了完整性 - 我的回答從2013年5月6日:-)

這一切都爲gitolite V2

我得到了它最後的工作:一是增加了 「的GitWeb守護進程」 來所有R都在gitolite.conf中,第二個添加了「SetEnv GIT_HTTP_BACKEND/usr/lib/git-core/git-http-backend」到vhost文件。不知道這兩個改變是否有必要。

0

在我的情況下,它只是一個許可/home/gitolite/repositories/目錄的問題。

或者也可以用的umask設置–根據DOC默認的umask問題是0700,爲CGT文件/的GitWeb工作0027

相關問題