私はgit-http-backendを使用して "smart-http"モードでgitのプッシュを必死にしようとしていました。しかし、何時間もテストとトラブルシューティングを行った後、私はまだ残っています
error: Cannot access URL http://localhost/git/hello.git/, return code 22
fatal: git-http-push failed`
Ubuntu(12.04)、Apache2(2.2.22)、Git(1.7.9.5)の最新バージョンを使用しており、インターネット上にあるさまざまなチュートリアル(http://www.parallelsymmetry.com/howto/gitなど)に従っています。 .jspという。
現在、私のVHostファイルは次のようになっています。
<VirtualHost *:80>
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
DocumentRoot /var/www/git
ScriptAliasMatch \
"(?x)^/(.*?)\.git/(HEAD | \
info/refs | \
objects/info/[^/]+ | \
git-(upload|receive)-pack)$" \
/usr/lib/git-core/git-http-backend/$1/$2
<Directory /var/www/git>
Options +ExecCGI +SymLinksIfOwnerMatch -MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
/var/www/git
フォルダーの所有権をに変更root.www-data
し、テストリポジトリーでを実行して匿名プッシュを有効にしましたgit config http.receivepack true
。認証済みのユーザーでも試してみましたが、結果は同じです。
リポジトリは次を使用して作成されました。
sudo git init --bare --shared [repo-name]
apache2 access.logを見ると、WebDAVが使用されようとしているように見え、git-http-backendが起動されることはありません。
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/info/refs?service=git-receive-pack HTTP/1.1" 200 207 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/HEAD HTTP/1.1" 200 232 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "PROPFIND /git/hello.git/ HTTP/1.1" 405 563 "-" "git/1.7.9.5"
私は何を間違えていますか?おそらく使用しているgitやapacheのバージョンの問題ですか?
ところで:私はServerFaultとStackOverflowに関するすべてのgit http関連の質問を読みました、そして、それらのどれも私に解決策を提供しなかったので、これを重複としてマークしないでください。