"Smart-HTTP"アプローチ を使用してGitサーバーをセットアップしたいと思います。しかし、Windowsで動作させるのが難しく、Apacheは初めてです。私のhttpd.conf、一部:
SetEnv GIT_PROJECT_ROOT "d:/repositories"
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ "C:/Program Files/Git/libexec/git-core/git-http-backend.exe"
<VirtualHost 172.16.0.5:80>
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
Require group committers
</LocationMatch>
</VirtualHost>
誰かがWindowsでgit-http-backendを使用してGitサーバーをセットアップする手順を提供できますか?
これをWindowsで機能させるための詳細がいくつかありますが、私は次の構成でこれを行うことができました。
SetEnv GIT_PROJECT_ROOT d:/Export/GIT/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ "C:/Progra~1/Git/libexec/git-core/git-http-backend.exe/"
<Directory "C:/Program Files/Git/libexec/git-core/">
Options +ExecCGI
Allow From All
</Directory>
Apacheログとイベントビューアーを見て、何が問題なのかを確認することを強くお勧めします。
例えば、
libiconv.dll
が見つかりません。 Windowsでは、DLLファイルは$PATH
、または.exe
ファイルと同じフォルダーに存在する必要があります。最も簡単な修正は、ファイルをコピーすることです。ExecCGI
オプション)。さて、デバッグを続けるために、ここにいくつかのポインタがあります。
Apacheログを監視する最も簡単な方法は、「Git bash」シェルを開き、次のコマンドを実行することです。
tail -f /c/Program\ Files/Apache\ Software\ Foundation/Apache2.2/logs/{access,error}.log &
このコマンドとパスをTAB補完機能を使用して入力し、Tabキーを2回押して候補のリストを取得できます。最後の&
は、バックグラウンドプロセスに変換します。リクエストを行うか、Apacheを再起動するたびに、新しいログ行が画面をスクロールします。
tail
プロセスは、次のいずれかを使用して停止できます。
jobs # See the background jobs
kill %1 # Kill the specific process
または:
fg # Bring the first job in the foreground
Ctrl+C # Kill the foreground process
ブラウザでgitURLを開こうとしないでください。これは機能しません。代わりに、同じGIT Bashシェルで、git clone
コマンドを実行します。例えば。:
git clone http://localhost/git/somefolder.git
...そして、どこがうまくいかなかったかを示すことによって、ログがスクロールするのがわかります。
git-http-backend
はHTMLフロントエンドを提供しないので、 gitphp を心から推奨できます(ほぼ同じ名前のプロジェクトが複数あることに注意してください)。設定は簡単で、msysGitサポートも考慮して構築されています。これにより、利用可能なすべてのリポジトリを参照するための優れたWebインターフェイスが提供されます。
Gitフォルダー内のスペースに問題があります。これらは回避するのが最善です。
パスワードを覚えておきたい場合は、HTTPURLのクローンを作成するには少なくともmsysGit1.7.1が必要です。パスワードは、プロファイルフォルダー(_netrc
)の%USERPROFILE%
ファイルに次のレイアウトで保存できます。
machine git.mydomain.com login MyAccount password MyPassword
または、クローンURLで認証情報を指定できますが、これによりサブモジュールが破損します。
脚注:サーバーがIIS 7および.NET 4もサポートしている場合は、 http://www.jeremyskinner.co.uk/2010/06/もご覧ください。 25/hosting-a-git-server-under-iis7-on-windows / または http://github.com/yysun/Git-Web-Access これらのプロジェクトはHTTPを提供します- .NETに基づくGitのバックエンド。サーバーはまだWindows2003を実行しているため、これらのツールを使用できませんでした。