Apache-2.2
git push over smart HTTP 失敗,出現 403
這一直讓我發瘋。我在 Lucid Ubuntu 上使用 Apache/2.2.14 執行 git 1.7.8.rc4,並設置了 LDAP 身份驗證。身份驗證似乎工作正常,我可以拉,但我不能在沒有 403 錯誤的情況下推動。
[Fri Dec 16 20:04:25 2011] [error] [client 10.60.226.130] client denied by server configuration: /opt/tools/libexec/git-core/git-http-backend
我的 apache 站點文件:
SetEnv GIT_PROJECT_ROOT /opt/git SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER ScriptAlias /git/ /opt/tools/libexec/git-core/git-http-backend/ <Directory "/opt/git"> Options -Indexes FollowSymLinks AllowOverride AuthConfig FileInfo Order allow,deny Allow from all </Directory> <Directory "/opt/tools"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> <LocationMatch "^/git/.*/git-receive-pack$"> Order deny,allow Deny from all AuthName "GIT Repo" AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL "ldap://10.59.10.40:389/dc=shopping,dc=com" Require valid-user </LocationMatch>
我找到的關於“客戶端被伺服器配置拒絕”的所有內容都說“將’命令允許,拒絕/允許所有人’添加到正確的目錄條目。” 它在那裡,但仍然無法正常工作。有任何想法嗎?我知道我真的很親密,可能是超級簡單的事情。
解決了。問題出在 LocationMatch 塊中:
Order deny,allow Deny from all
導致403錯誤。將其更改為允許在目錄塊中,它更改為 401,結果證明這是 LDAP 身份驗證的問題。我將 AuthBasicProvider 更改為“外部”並按照(pyxzl.net/store/authnz.php)使用 pwauth