1
的GitWeb忽略如何爲我的每個用戶製作單獨的Gitweb「頁面」?
SetEnv GIT_PROJECT_ROOT /path/to/user/git
即使它適用於飯桶。我可以克隆並推送到我的存儲庫。如果我啓用gitweb,每個用戶都可以看到所有的用戶存儲庫和代碼。
如何爲我的每個用戶製作單獨的Gitweb「頁面」?
的GitWeb忽略如何爲我的每個用戶製作單獨的Gitweb「頁面」?
SetEnv GIT_PROJECT_ROOT /path/to/user/git
即使它適用於飯桶。我可以克隆並推送到我的存儲庫。如果我啓用gitweb,每個用戶都可以看到所有的用戶存儲庫和代碼。
如何爲我的每個用戶製作單獨的Gitweb「頁面」?
這裏的答案就在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/";
};