Git 저장소 서버 GIT_PROJECT_ROOT

Git 저장소 서버 GIT_PROJECT_ROOT

Git SmartHTTP 및 Apache2를 사용하여 내 Git 저장소 서버를 구성하려고 합니다. 그러니 그냥 따라오세요이것들공식 Git 매뉴얼의 지침. 그러나 구성하는 동안 이 변수가 정확히 무엇을 구성하는지 명확하지 않습니다 GIT_PROJECT_ROOT. 웹 서버의 한 저장소에 대한 경로를 설정합니까, 아니면 해당 값을 모든 저장소가 포함된 폴더의 경로로 설정할 수 있습니까?
이 변수는 다른 어떤 것들에 영향을 미치나요?
문제는 SmartHTTP 장이나 공식 git 매뉴얼의 환경 변수 장에 설명이나 설명이 없다는 것입니다.

답변1

안쪽에 설명이 있어요git-http-백엔드 매뉴얼. GIT_PROJECT_ROOTApache와 유사하게 모든 저장소의 상위 경로로 설정된 변수DocumentRootURL 경로를 파일 시스템으로 변환하는 지시문:

URL 번역

디스크의 저장소 위치를 확인하려면자식 http 백엔드PATH_INFO웹 서버에서 자동으로 설정하는 환경 변수와 GIT_PROJECT_ROOT웹 서버 구성에서 수동으로 설정해야 하는 환경 변수를 연결합니다. 설정하지 않은 경우 GIT_PROJECT_ROOT,자식 http 백엔드읽기 PATH_TRANSLATED, 이 역시 웹 서버에 의해 자동으로 설정됩니다.

아래의 모든 예 http://$hostname/git/foo/bar.git는 에 매핑됩니다 /var/www/git/foo/bar.git.

아파치 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.gitgit-http-backend CGI 스크립트에 매핑되고 나머지는 Git 저장소와 일치해야 하는 경로(또는 DocumentRoot) 변수에 추가됩니다 foo/bar.git.GIT_PROJECT_ROOT

관련 정보