h1. Windows Apache 서버에서의 설치 본 문서는 Windwos Apcahe 서버에서 *WebDAV*를 기반으로 하면서 Git Server를 설치 운용하는 방법에 대하여 논한다. 일단, Git For Windows가 설치되어 있다고 가정한 상태에서 설명을 서술한다. 많은 경우, Windows의 Apache 서버 세팅 대신 Linux Apache 서버 세팅인 관계로 Windows에서 어떻게 Git 서버 세팅이 가능한지, 잘 나와 있지 않다. 그러나 생각보다 쉽다. h2. 사전준비 일단 서버의 경우 다음과 같이 bare Git Repository를 htdocs에 만든다. 이 두 명령어는 Windows Commander로 만들고
mkdir test_git.git
cd test_git.git
git 명령은 Windows용 Git Bash를 사용해야 한다. 디렉토리는 *test_git.git* 이라 가정한다. (..\htdocs\test_git.git) 이다.
git --bare init
git update-server-info
즉, Command 창과 Git Bash 창을 동시에 사용해야 한다. 다음 WebDav를 활성화 시켜야 한다. 2가지 방법이 있다. h2. WebDAV 기반 설치 h3. Windows IIS 로 WebDav를 활성화 시키는 방법 (그런데 이방식으로 Apache 서버가 활성화 되는 것 같지 않다.) * Windows 7 에서 Webdav 서버 설정하는 방법 http://ycho.tistory.com/15 제어판->Windows 기능 활성/비활성 -> IIS (Internet Information Service)기능 활성화 h3. Apache의 WebDav 모듈을 Enable 시키는 방법 a2enmod dav_fs 그런데 보통은 a2enmod.exe 가 Redmine Apache 서버에 없다 그럼 다른 방법은?? h3. httpd.conf 에서 WebDav 활성화 시키기 이 방법을 통해 실제로 Git Server를 활성화 시켰다. 일단, Apache 서버를 끄고 */conf/ httpd.conf* 에서 다음을 찾아보자.
Dynamic Shared Object (DSO) Support
이 항목에서 다음의 Module 3개가 모두 Load 되도록 한다.
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
현재 httpd.conf 에 DocumentRoot "C:/Bitnami/redmine-2.4.2-0/apache2/htdocs" 로 설정되어 있고 해당 Root의 형식이 그 밑에 설정되어 있다. 나중에 환경변수로 Git Repository 를 설정하고 비슷하게 만들어서 실험해 보자. 그 다음 Password File을 생성해야 한다. Bin 밑에 보면 htpasswd 가 있다. 이것을 사용하여 다음과 같이 만들자.
$ htpasswd -c passwd.git 
그러면 password 를 묻는다. Password를 입력하면 passwd.git 파일이 생성된다. passwd.git 파일을 /conf 밑에 복사한다. 사용자를 추가하기 위해서는 위에서 passwd.git 에 –c 옵션 없이 사용자를 추가하면 된다. 다시, httpd.conf 파일을 열어서 다음과 같이 편집한다.
# WebDAV for Git Server
# First Locking DAV Operation using DavLockDB
# Second Including the following Directory
#

DavLockDB  "c:\Bitnami\redmine-2.4.2-0\apache2\var\DavLock"


     DAV on
     AuthType Basic
     AuthName Git
     AuthUserFile conf/passwd.git
     Require valid-user
  
*DavLockDB 경로를 잘 적어 주어야 한다.* User의 경우 valid-user로 해주어야 한다. Apache 서버를 다시 Enable 시킨다. 이 정도만 하면 http://jnwhome.iptime.org/test_git.git 하면 해당 페이지를 볼 수 있다 (ID와 PW 입력 후) h3. User 권한 설정 그리고 가장 중요한 점은… Test_git.git 폴더의 권한을 잡아 주어야 한다. Linux에서는 이 부분을 chmod 혹은 chown -R www.www 을 통해 수행하는데 Windows 에서는 전혀 다르다. Windows에서는 test_git.git 에 우측 마우스를 대고 속성->보안으로 들어가서 *Authenticated Users*를 모든 권한으로 해 주어야 한다. 안 그러면 Git 에서 에러가 난다. 이로서 WebDav로 인증된 사용자가 Git Remote 서버를 인증하여 사용할 수 있게 된다. h2. 시험 및 확인 Client 에서는?? 만일 Git Bash가 있다면 다음과 같이 하면 된다. (경로는 Windows 경로가 되도록 한다)
mkdir ~/Desktop/test-project
cd ~/Desktop/test-project
git init
git remote add origin http://@/test-project.git
touch README
git add .
git commit -a -m “Initial import”
git push origin master
만일 TortoiseGit 이 설치되어 있다면 다음과 같이 한다. 일단, Git Repository here 를 수행하여 특정 폴더를 git Repository 로 만든다. Bare로 만들면 안된다. TortoiseGit -> Setting -> Git 에서 설정을 확인한 후 (사용자 정보와 이메일) Git->Remote를 설정한다. (매우 중요)

http://jnwhome.iptime.org/test_git.git
이것만 넣어 주어도 자동적으로 origin 이 뜬다. 다음이 중요하다.

http://MyID:MyPW@jnwhome.iptime.org/test_git.git
꼭 *ID와 PW를 http://* 앞에 같이 써주어야 한다. 그리고 PUSH를 해주면 Remote에 Push가 된다. h2. 참조 사이트 * 기본적인 사항은 다음 사이트를 참조한다. https://git-scm.com/book/ko/v1/Git-%EC%84%9C%EB%B2%84-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C * 혹은 다음 사이트를 참조한다. http://www.rasplay.org/?p=1325 * 이 사이트도 아주 좋다. http://blog.bobbyallen.me/2012/07/23/installing-a-git-server-using-apache-webdav-on-ubuntu-server-12-04/