Git 및 Apache 패키지는 Ubuntu의 공식 패키지 저장소에서 사용할 수 있습니다. 따라서 APT 패키지 관리자로 쉽게 설치할 수 있습니다.
먼저 다음 명령을 사용하여 APT 패키지 저장소 캐시를 업데이트합니다.
$수도적절한 업데이트
APT 패키지 저장소 캐시를 업데이트해야 합니다.
이제 다음 명령으로 Git과 Apache를 설치합니다.
$수도적절한설치 가다apache2 apache2 유틸리티
이제 그리고 그런 다음 누르십시오 설치를 확인합니다.
Git과 Apache가 설치되어 있어야 합니다.
Git용 Apache HTTP 서버 구성:
이제 Apache를 활성화하십시오. mod_env , mod_cgi , mod_alias 그리고 mod_rewrite 다음 명령으로 모듈:
$수도a2enmod환경CG별명고쳐 쓰기
필수 Apache 모듈을 활성화해야 합니다.
이제 새 디렉토리를 만듭니다. /var/www/git 다음 명령으로 모든 Git 리포지토리를 유지하려면:
$수도 mkdir /어디/www/가다이제 새 Apache 사이트 구성을 만듭니다. /etc/apache2/sites-available/git.conf 다음 명령을 사용하여 Git의 경우:
$수도 나노 /등/아파치2/사용 가능한 사이트/git.conf이제 구성 파일에 다음 줄을 입력합니다.
<가상호스트*:80>ServerAdmin 웹마스터@로컬 호스트
환경 설정 GIT_PROJECT_ROOT<강한> /어디/www/가다강한>
SetEnv GIT_HTTP_EXPORT_ALL
스크립트별칭/가다/ /usr/라이브러리/자식 코어/git-http-backend/
별명/가다 /어디/www/가다
<예배 규칙서/usr/라이브러리/자식 코어>
옵션 +ExecCGI-멀티뷰+SymLinksIfOwnerMatch
재정의 허용 없음
모든 권한 부여 필요
예배 규칙서>
문서 루트/어디/www/HTML
<예배 규칙서/어디/www>
옵션 인덱스 FollowSymLinks MultiViews
재정의 허용 없음
모든 권한 부여 필요
예배 규칙서>
오류 기록$ {APACHE_LOG_DIR}/오류 기록
LogLevel 경고
커스텀로그$ {APACHE_LOG_DIR}/access.log 결합
가상호스트>
최종 구성 파일은 다음과 같습니다. 이제 다음을 눌러 구성 파일을 저장합니다. + NS 뒤이어 그리고 그리고 .
이제 다음 명령을 사용하여 기본 Apache 사이트 구성을 비활성화합니다.
$수도a2dissite 000-default.conf기본 사이트 구성을 비활성화해야 합니다.
이제 다음 명령을 사용하여 Git 사이트 구성을 활성화합니다.
$수도a2ensite git.confGit 사이트 구성이 활성화되어 있어야 합니다.
이제 다음 명령으로 Apache HTTP 서버를 다시 시작합니다.
$수도systemctl apache2 재시작Apache HTTP 서버를 통해 액세스할 수 있는 새 Git 저장소를 부트스트랩하려면 몇 가지 명령을 실행해야 합니다. 새로운 Git 리포지토리를 생성하기 위해 동일한 작업을 반복해서 수행하고 싶지는 않습니다. 그래서 저는 그 목적을 위해 쉘 스크립트를 작성하기로 결정했습니다.
먼저 새 셸 스크립트를 만듭니다. /usr/local/bin/git-create-repo.sh 다음 명령으로:
$수도 나노 /usr/현지의/오전/git-create-repo.sh이제 쉘 스크립트에 다음 코드 줄을 입력합니다.
#!/bin/bashGIT_DIR='/var/www/git'
REPO_NAME=$ 1
mkdir -NS '${GIT_DIR}/${REPO_NAME}.가다'
CD '${GIT_DIR}/${REPO_NAME}.가다'
자식 초기화 --단지 &> /개발자/없는
만지다자식 데몬 내보내기 확인
cp후크/post-update.sample 후크/업데이트 후
자식 구성http.receivepack진실
자식 업데이트 서버 정보
차우 -RFwww-data: www-data'${GIT_DIR}/${REPO_NAME}.가다'
던졌다 'Git 저장소 '${REPO_NAME}'에서 생성${GIT_DIR}/${REPO_NAME}.가다'
이 줄을 입력하면 셸 스크립트가 다음과 같이 표시됩니다. 이제 다음을 눌러 파일을 저장합니다. + NS 뒤이어 그리고 그리고 .
이제 다음 명령을 사용하여 쉘 스크립트에 실행 권한을 추가하십시오.
$수도 chmod+ x/usr/현지의/오전/git-create-repo.sh이제 새 Git 저장소를 만듭니다. 시험 Git 프로젝트 루트에서 /var/www/git 를 사용하여 git-create-repo.sh 쉘 스크립트는 다음과 같습니다.
$수도git-create-repo.sh시험Git 저장소 시험 생성되어야 합니다.
Git 저장소에 액세스하려면 Git HTTP 서버의 IP 주소가 필요합니다.
$아이피에게보시다시피 제 경우의 IP 주소는 192.168.21.208 . 당신에게는 다를 것입니다. 지금부터 당신의 것으로 교체하십시오.
이제 복제할 수 있습니다. 시험 Git 리포지토리는 다음과 같습니다.
$자식 클론http://192.168.21.208/가다/test.goGit 저장소 시험 복제해야 합니다.
이제 새 커밋을 추가해 보겠습니다. 시험 Git 저장소.
$CD시험/$던졌다 '헬로월드' >안녕하십니까
$자식 추가.
$자식 커밋 -미디엄 '초기 커밋'
이제 변경 사항을 시험 다음과 같이 서버의 Git 리포지토리:
$자식 푸시기원보시다시피 변경 사항이 잘 업로드됩니다.
사용자 인증 구성:
이 섹션에서는 서버의 Git 리포지토리에서 사용자 인증을 구성하는 방법을 보여 드리겠습니다.
먼저 편집 git.conf 사이트 구성 파일은 다음과 같습니다.
$수도 나노 /등/아파치2/사용 가능한 사이트/git.conf이제 구성 파일에 다음 섹션을 추가합니다.
<위치 일치/가다/.*.가다>인증 유형 기본
인증 이름'깃 검증'
인증 사용자 파일/등/아파치2/git.passwd
유효한 사용자 필요
위치 일치>
여기, /etc/apache2/git.passwd 사용자 데이터베이스 파일입니다.
최종 구성 파일은 다음과 같아야 합니다. 이제 다음을 눌러 파일을 저장합니다. + NS 뒤이어 그리고 그리고 .
이제 새 사용자 데이터베이스 파일을 만듭니다. /etc/apache2/git.passwd 새 사용자를 추가합니다(예를 들어 쇼본 ) 다음과 같이 데이터베이스 파일에 추가합니다.
$수도htpasswd-씨 /등/아파치2/git.passwd 쇼본이제 새 사용자의 새 암호를 입력하고 .
같은 비밀번호를 다시 입력하고 .
사용자-암호 쌍을 데이터베이스에 추가해야 합니다.
이제 다음 명령으로 Apache HTTP 서버를 다시 시작합니다.
$수도systemctl apache2 재시작이제 복제를 시도하면 시험 저장소를 다시 열면 아래 스크린샷에서 볼 수 있는 것처럼 인증하라는 메시지가 표시됩니다.
사용자 이름과 비밀번호를 사용하여 인증하면 Git 저장소에 액세스할 수 있습니다.
Git 리포지토리에서 푸시 또는 풀을 시도하는 경우에도 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다.
인증이 완료되면 푸시/풀이 작동합니다.
다른 Git 리포지토리에 대해 다른 사용자 데이터베이스를 설정할 수도 있습니다. 이는 많은 사람들이 동일한 Git 리포지토리에서 함께 작업하는 프로젝트에 유용할 수 있습니다.
Git 저장소별 인증을 설정하려면 먼저 git.conf 사이트 구성 파일은 다음과 같습니다.
$수도 나노 /등/아파치2/사용 가능한 사이트/git.conf이제 구성 파일에 다음 줄을 추가합니다.
<위치/가다/test.go>인증 유형 기본
인증 이름'깃 검증'
인증 사용자 파일/등/아파치2/git.test.passwd
유효한 사용자 필요
위치>
<위치/가다/테스트2.git>
인증 유형 기본
인증 이름'깃 검증'
인증 사용자 파일/등/아파치2/git.test2.passwd
유효한 사용자 필요
위치>
각 Git 리포지토리에 대해 시험 그리고 테스트2 , 에게 섹션이 정의됩니다. 각 Git 리포지토리에 대해 다른 사용자 데이터베이스 파일이 사용됩니다.
최종 구성 파일은 다음과 같아야 합니다. 이제 다음을 눌러 구성 파일을 저장합니다. + NS 뒤이어 그리고 그리고 .
이제 다음과 같이 필요한 사용자 데이터베이스를 생성할 수 있습니다.
$수도htpasswd-씨 /등/아파치2/git.test.passwd 사용자 이름$수도htpasswd-씨 /등/아파치2/git.test2.passwd 사용자 이름
완료되면 다음 명령으로 Apache HTTP 서버를 다시 시작합니다.
$수도systemctl apache2 재시작이제 각 Git 리포지토리에는 액세스할 수 있는 고유한 사용자 집합이 있어야 합니다.
이것이 Ubuntu에서 Apache HTTP Server로 Git 서버를 구성하는 방법입니다. 이 기사를 읽어 주셔서 감사합니다.