2013-03-07 21 views

回答

1

這裏的答案就在gitweb.conf文件(通常位於/etc/gitweb.conf)

的$ per_request_config變量假設/ git的/是你的git倉庫的根目錄下,並且每個用戶擁有該文件夾中的目錄,這會爲你工作:

our $per_request_config = sub { 
     $projectroot = "/git/" . $cgi->remote_user; 
}; 

你的Apache虛擬主機的配置看起來是這樣的:

<VirtualHost *:443> 
     SSLEngine on 
     SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP 

     SSLCertificateFile  /ssl/mydomain.com.crt 
     SSLCertificateKeyFile /ssl/mydomain.com.key 

     DocumentRoot /git/user 
     ServerName user.mydomain.com 

     SetEnv GIT_PROJECT_ROOT /git/user 
     SetEnv GIT_HTTP_EXPORT_ALL 

     <Directory /> 
      Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch 
      AuthType Basic 
      AuthName "Private Git Access" 
      AuthUserFile "/git/git-auth" 
      Require valid-user 
      AddHandler cgi-script .cgi 
      DirectoryIndex gitweb.cgi 
     </Directory> 

     # This pattern matches git operations and passes them to http-backend 
     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/libexec/git-core/git-http-backend/$1 

</VirtualHost> 

我發現這是easies我可以管理git和用戶。

但是,如果您遵循更傳統的模型,您可以鏈接到每個用戶的主目錄中的文件夾'git'。

our $per_request_config = sub { 
     $projectroot = "/home/" . $cgi->remote_user . "/git/"; 
}; 
相關問題