Git SmartHTTPとApache2を使用して私のGitストレージサーバーを設定しようとしています。だからただフォローしてください。これら公式Gitマニュアルの指示。ただし、設定中にこの変数が正確に何を構成しているかは不明ですGIT_PROJECT_ROOT
。 Webサーバー上の1つのリポジトリへのパスを設定しますか、またはその値をすべてのリポジトリを含むフォルダへのパスに設定できますか?
この変数は他の何かに影響しますか?
問題は、SmartHTTPの章や公式のgitマニュアルの環境変数の章に説明や説明がないことです。
答え1
奥に説明があります。git-http-バックエンドマニュアル。GIT_PROJECT_ROOT
Apacheと同様に、すべてのリポジトリの親パスに設定された変数DocumentRoot
URLパスをファイルシステムに変換するディレクティブ:
URLの翻訳
ディスク上のストレージの場所を確認するには子httpバックエンド
PATH_INFO
Webサーバーが自動的に設定する環境変数と、GIT_PROJECT_ROOT
Webサーバー構成で手動で設定する必要がある環境変数を関連付けます。設定していない場合GIT_PROJECT_ROOT
、子httpバックエンド読み取りPATH_TRANSLATED
、これもWebサーバーによって自動的に設定されます。はい
以下の例はすべてに
http://$hostname/git/foo/bar.git
マップされています/var/www/git/foo/bar.git
。Apache 2.x
mod_cgi、mod_alias、およびmod_envが有効で正しく設定されていること(またはDocumentRoot)を確認し、
GIT_PROJECT_ROOT
CGI用のScriptAliasを作成します。SetEnv GIT_PROJECT_ROOT /var/www/git SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
したがって、/git/
一部はhttp://hostname/git/foo/bar.git
git-http-backend CGIスクリプトにマッピングされ、残りはGitリポジトリと一致する必要があるパス(またはDocumentRoot)変数に追加されますfoo/bar.git
。GIT_PROJECT_ROOT