Windows Apache 서버에서의 설치 » 이력 » 버전 1

Jinwuk Admin, 2018/07/06 15:04

1 1 Jinwuk Admin
h1. Windows Apache 서버에서의 설치
2 1 Jinwuk Admin
3 1 Jinwuk Admin
본 문서는 Windwos Apcahe 서버에서 *WebDAV*를 기반으로 하면서 Git Server를 설치 운용하는 방법에 대하여 논한다.
4 1 Jinwuk Admin
일단, Git For Windows가 설치되어 있다고 가정한 상태에서 설명을 서술한다.
5 1 Jinwuk Admin
6 1 Jinwuk Admin
많은 경우, Windows의 Apache 서버 세팅 대신 Linux Apache 서버 세팅인 관계로 Windows에서 어떻게 Git 서버 세팅이 가능한지, 잘 나와 있지 않다.  그러나 생각보다 쉽다.
7 1 Jinwuk Admin
8 1 Jinwuk Admin
h2. 사전준비
9 1 Jinwuk Admin
10 1 Jinwuk Admin
일단 서버의 경우 다음과 같이 bare Git Repository를 htdocs에 만든다.
11 1 Jinwuk Admin
이 두 명령어는 Windows Commander로 만들고
12 1 Jinwuk Admin
13 1 Jinwuk Admin
<pre>
14 1 Jinwuk Admin
mkdir test_git.git
15 1 Jinwuk Admin
cd test_git.git
16 1 Jinwuk Admin
</pre>
17 1 Jinwuk Admin
18 1 Jinwuk Admin
git 명령은 Windows용 Git Bash를 사용해야 한다. 디렉토리는 *test_git.git* 이라 가정한다. (..\htdocs\test_git.git) 이다.
19 1 Jinwuk Admin
20 1 Jinwuk Admin
<pre>
21 1 Jinwuk Admin
git --bare init
22 1 Jinwuk Admin
git update-server-info
23 1 Jinwuk Admin
</pre>
24 1 Jinwuk Admin
25 1 Jinwuk Admin
즉, Command 창과 Git Bash 창을 동시에 사용해야 한다.
26 1 Jinwuk Admin
다음 WebDav를 활성화 시켜야 한다. 2가지 방법이 있다.
27 1 Jinwuk Admin
28 1 Jinwuk Admin
h2. WebDAV 기반 설치 
29 1 Jinwuk Admin
30 1 Jinwuk Admin
h3. Windows IIS 로 WebDav를 활성화 시키는 방법 (그런데 이방식으로 Apache 서버가 활성화 되는 것 같지 않다.)
31 1 Jinwuk Admin
32 1 Jinwuk Admin
* Windows 7 에서 Webdav 서버 설정하는 방법
33 1 Jinwuk Admin
http://ycho.tistory.com/15
34 1 Jinwuk Admin
35 1 Jinwuk Admin
제어판->Windows 기능 활성/비활성 -> IIS (Internet Information Service)기능 활성화
36 1 Jinwuk Admin
 
37 1 Jinwuk Admin
38 1 Jinwuk Admin
h3. Apache의 WebDav 모듈을 Enable 시키는 방법
39 1 Jinwuk Admin
40 1 Jinwuk Admin
a2enmod dav_fs
41 1 Jinwuk Admin
그런데 보통은 a2enmod.exe 가 Redmine Apache 서버에 없다 그럼 다른 방법은??
42 1 Jinwuk Admin
43 1 Jinwuk Admin
44 1 Jinwuk Admin
h3. httpd.conf 에서 WebDav 활성화 시키기
45 1 Jinwuk Admin
46 1 Jinwuk Admin
이 방법을 통해 실제로 Git Server를 활성화 시켰다. 
47 1 Jinwuk Admin
48 1 Jinwuk Admin
일단, Apache 서버를 끄고
49 1 Jinwuk Admin
50 1 Jinwuk Admin
*/conf/ httpd.conf* 에서 다음을 찾아보자.
51 1 Jinwuk Admin
<pre>
52 1 Jinwuk Admin
Dynamic Shared Object (DSO) Support
53 1 Jinwuk Admin
</pre>
54 1 Jinwuk Admin
55 1 Jinwuk Admin
이 항목에서 다음의 Module 3개가 모두 Load 되도록 한다.
56 1 Jinwuk Admin
57 1 Jinwuk Admin
<pre>
58 1 Jinwuk Admin
LoadModule dav_module modules/mod_dav.so
59 1 Jinwuk Admin
LoadModule dav_fs_module modules/mod_dav_fs.so
60 1 Jinwuk Admin
LoadModule dav_lock_module modules/mod_dav_lock.so
61 1 Jinwuk Admin
</pre>
62 1 Jinwuk Admin
63 1 Jinwuk Admin
현재 httpd.conf 에
64 1 Jinwuk Admin
65 1 Jinwuk Admin
DocumentRoot "C:/Bitnami/redmine-2.4.2-0/apache2/htdocs"
66 1 Jinwuk Admin
67 1 Jinwuk Admin
로 설정되어 있고 해당 Root의 형식이 그 밑에 설정되어 있다.
68 1 Jinwuk Admin
나중에 환경변수로 Git Repository 를 설정하고 비슷하게 만들어서 실험해 보자.
69 1 Jinwuk Admin
70 1 Jinwuk Admin
그 다음 Password File을 생성해야 한다. Bin 밑에 보면 htpasswd 가 있다. 이것을 사용하여 다음과 같이 만들자.
71 1 Jinwuk Admin
72 1 Jinwuk Admin
<pre>
73 1 Jinwuk Admin
$ htpasswd -c passwd.git <user>
74 1 Jinwuk Admin
</pre>
75 1 Jinwuk Admin
76 1 Jinwuk Admin
그러면 password 를 묻는다. Password를 입력하면 passwd.git 파일이 생성된다.
77 1 Jinwuk Admin
passwd.git 파일을 /conf 밑에 복사한다.
78 1 Jinwuk Admin
79 1 Jinwuk Admin
사용자를 추가하기 위해서는 위에서 passwd.git 에 –c 옵션 없이 사용자를 추가하면 된다.
80 1 Jinwuk Admin
81 1 Jinwuk Admin
다시, httpd.conf 파일을 열어서 다음과 같이 편집한다.
82 1 Jinwuk Admin
83 1 Jinwuk Admin
<pre>
84 1 Jinwuk Admin
# WebDAV for Git Server
85 1 Jinwuk Admin
# First Locking DAV Operation using DavLockDB
86 1 Jinwuk Admin
# Second Including the following Directory
87 1 Jinwuk Admin
#
88 1 Jinwuk Admin
89 1 Jinwuk Admin
DavLockDB  "c:\Bitnami\redmine-2.4.2-0\apache2\var\DavLock"
90 1 Jinwuk Admin
91 1 Jinwuk Admin
<Location /test_git.git>
92 1 Jinwuk Admin
     DAV on
93 1 Jinwuk Admin
     AuthType Basic
94 1 Jinwuk Admin
     AuthName Git
95 1 Jinwuk Admin
     AuthUserFile conf/passwd.git
96 1 Jinwuk Admin
     Require valid-user
97 1 Jinwuk Admin
  </Location>
98 1 Jinwuk Admin
</pre>
99 1 Jinwuk Admin
 
100 1 Jinwuk Admin
*DavLockDB 경로를 잘 적어 주어야 한다.*
101 1 Jinwuk Admin
User의 경우 valid-user로 해주어야 한다.
102 1 Jinwuk Admin
103 1 Jinwuk Admin
Apache 서버를 다시 Enable 시킨다.
104 1 Jinwuk Admin
이 정도만 하면
105 1 Jinwuk Admin
106 1 Jinwuk Admin
http://jnwhome.iptime.org/test_git.git 하면 해당 페이지를 볼 수 있다 (ID와 PW 입력 후)
107 1 Jinwuk Admin
108 1 Jinwuk Admin
109 1 Jinwuk Admin
h3. User 권한 설정
110 1 Jinwuk Admin
111 1 Jinwuk Admin
그리고 가장 중요한 점은…
112 1 Jinwuk Admin
113 1 Jinwuk Admin
Test_git.git 폴더의 권한을 잡아 주어야 한다. Linux에서는 이 부분을 chmod 혹은 chown -R www.www 을 통해 수행하는데 Windows 에서는 전혀 다르다. Windows에서는 test_git.git 에 우측 마우스를 대고 속성->보안으로 들어가서
114 1 Jinwuk Admin
115 1 Jinwuk Admin
*Authenticated Users*를 모든 권한으로 해 주어야 한다. 안 그러면 Git 에서 에러가 난다. 이로서 WebDav로 인증된 사용자가 Git Remote 서버를 인증하여 사용할 수 있게 된다.
116 1 Jinwuk Admin
117 1 Jinwuk Admin
h2. 시험 및 확인 
118 1 Jinwuk Admin
119 1 Jinwuk Admin
Client 에서는??
120 1 Jinwuk Admin
만일 Git Bash가 있다면 다음과 같이 하면 된다. (경로는 Windows 경로가 되도록 한다)
121 1 Jinwuk Admin
122 1 Jinwuk Admin
<pre>
123 1 Jinwuk Admin
mkdir ~/Desktop/test-project
124 1 Jinwuk Admin
cd ~/Desktop/test-project
125 1 Jinwuk Admin
</pre>
126 1 Jinwuk Admin
<pre>
127 1 Jinwuk Admin
git init
128 1 Jinwuk Admin
git remote add origin http://<user>@<server name or IP address>/test-project.git
129 1 Jinwuk Admin
touch README
130 1 Jinwuk Admin
git add .
131 1 Jinwuk Admin
git commit -a -m “Initial import”
132 1 Jinwuk Admin
git push origin master
133 1 Jinwuk Admin
</pre>
134 1 Jinwuk Admin
135 1 Jinwuk Admin
만일 TortoiseGit 이 설치되어 있다면 다음과 같이 한다.
136 1 Jinwuk Admin
일단, Git Repository here 를 수행하여 특정 폴더를 git Repository 로 만든다.
137 1 Jinwuk Admin
Bare로 만들면 안된다.
138 1 Jinwuk Admin
139 1 Jinwuk Admin
TortoiseGit -> Setting -> Git 에서 설정을 확인한 후 (사용자 정보와 이메일)
140 1 Jinwuk Admin
Git->Remote를 설정한다. (매우 중요)
141 1 Jinwuk Admin
142 1 Jinwuk Admin
<pre>
143 1 Jinwuk Admin
<URL>
144 1 Jinwuk Admin
http://jnwhome.iptime.org/test_git.git
145 1 Jinwuk Admin
</pre>
146 1 Jinwuk Admin
147 1 Jinwuk Admin
이것만 넣어 주어도 자동적으로 origin 이 뜬다. 다음이 중요하다.
148 1 Jinwuk Admin
149 1 Jinwuk Admin
<pre>
150 1 Jinwuk Admin
<Push URL>
151 1 Jinwuk Admin
http://MyID:MyPW@jnwhome.iptime.org/test_git.git
152 1 Jinwuk Admin
</pre>
153 1 Jinwuk Admin
154 1 Jinwuk Admin
꼭 *ID와 PW를 http://* 앞에 같이 써주어야 한다.
155 1 Jinwuk Admin
그리고 PUSH를 해주면 Remote에 Push가 된다.
156 1 Jinwuk Admin
 
157 1 Jinwuk Admin
h2. 참조 사이트
158 1 Jinwuk Admin
159 1 Jinwuk Admin
* 기본적인 사항은 다음 사이트를 참조한다.
160 1 Jinwuk Admin
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
161 1 Jinwuk Admin
162 1 Jinwuk Admin
* 혹은 다음 사이트를 참조한다.
163 1 Jinwuk Admin
http://www.rasplay.org/?p=1325
164 1 Jinwuk Admin
165 1 Jinwuk Admin
* 이 사이트도 아주 좋다.
166 1 Jinwuk Admin
http://blog.bobbyallen.me/2012/07/23/installing-a-git-server-using-apache-webdav-on-ubuntu-server-12-04/
클립보드 이미지 추가 (최대 크기: 977.563 MB)