web-dev-qa-db-ja.com

WindowsでApacheを使用してgit-http-backendをセットアップする手順は何ですか?

"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サーバーをセットアップする手順を提供できますか?

6
Jordan

これを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ファイルと同じフォルダーに存在する必要があります。最も簡単な修正は、ファイルをコピーすることです。
  • Apacheでは、実行可能ファイルを実行するためにアクセス許可を設定する必要があります(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を実行しているため、これらのツールを使用できませんでした。

7
vdboor