Git SmartHTTP 및 Apache2를 사용하여 내 Git 저장소 서버를 구성하려고 합니다. 그러니 그냥 따라오세요이것들공식 Git 매뉴얼의 지침. 그러나 구성하는 동안 이 변수가 정확히 무엇을 구성하는지 명확하지 않습니다 GIT_PROJECT_ROOT
. 웹 서버의 한 저장소에 대한 경로를 설정합니까, 아니면 해당 값을 모든 저장소가 포함된 폴더의 경로로 설정할 수 있습니까?
이 변수는 다른 어떤 것들에 영향을 미치나요?
문제는 SmartHTTP 장이나 공식 git 매뉴얼의 환경 변수 장에 설명이나 설명이 없다는 것입니다.
답변1
안쪽에 설명이 있어요git-http-백엔드 매뉴얼. GIT_PROJECT_ROOT
Apache와 유사하게 모든 저장소의 상위 경로로 설정된 변수DocumentRoot
URL 경로를 파일 시스템으로 변환하는 지시문:
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.git
git-http-backend CGI 스크립트에 매핑되고 나머지는 Git 저장소와 일치해야 하는 경로(또는 DocumentRoot) 변수에 추가됩니다 foo/bar.git
.GIT_PROJECT_ROOT