问问题
27222 次
1 回答
25
好的,所以地狱已经结冰了,我终于得到了这个工作!
我相信我的设置有两件事根本上是错误的。
1)用户没有通过身份验证,我发现这有帮助:
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
其次,我无法让物理“目录”工作。
<Directory "C:/GIT/Apache/repositories">
Options +ExecCGI
AuthType Basic
AuthName intranet
AuthUserFile "C:/GIT/Apache/config/users"
Require valid-user
</Directory>
为了解决这个问题,我将 locationMatch 用于拉取和推送。这意味着您必须进行身份验证才能拉取和推送。如果您想要烦人的拉动,您可以删除“git-upload-pack”部分。
希望这可以帮助别人。
这是我最终的 httpd.conf 文件:
DocumentRoot "C:/GIT/Apache/www"
<Directory />
Options +ExecCGI
Allow from all
</Directory>
<Directory "C:/GIT/Apache/www">
Allow from all
</Directory>
<Directory "C:/GIT/Apache/www/secure">
AuthType Basic
AuthName intranet
AuthUserFile "C:/GIT/Apache/config/users"
require valid-user
</Directory>
SetEnv GIT_PROJECT_ROOT C:/GIT/Apache/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
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))$" \
"C:/Program Files/git/libexec/git-core/git-http-backend.exe/$1"
<LocationMatch "^/.*/git-receive-pack$">
Options +ExecCGI
AuthType Basic
AuthName intranet
AuthUserFile "C:/GIT/Apache/config/users"
Require valid-user
</LocationMatch>
<LocationMatch "^/.*/git-upload-pack$">
Options +ExecCGI
AuthType Basic
AuthName intranet
AuthUserFile "C:/GIT/Apache/config/users"
Require valid-user
</LocationMatch>
于 2010-10-20T21:33:13.353 回答