Subversion 을 Linux 에 설치했다.
대상 시스템은 Fedora core 3 이 설치된 서버였는데 yum 을 이용해서 설치하고 싶었다.
그런데 Fedora core 3 의 Subversion 은 버전이 너무 낮았다. 1.1.x 였던가?
그래서 Fedora core 5 의 패키지를 yum 으로 받아서 하려고 낑낑거리다가 포기하고 말았다.
커널까지 손을 대지 않으면 yum 으로는 도대체 불가능해보이니...
core 를 올리기는 해야 하겠지만 우선은 미루기로 하고, 소스를 받아서 컴파일하기로 결정했다.
서버에 Apache httpd 가 1.3.x 가 설치되어있으므로 2.x 를 따로 설치해야 했다.
좀 보다보니 버클리 DB 를 설치해야 할 것 같은 압박...
그러나 정룡이가 현재는 BDB 보다는 fsfs 를 권고한다는 말을 해주어서 마음이 편해지고,
당연히 최신으로 받아서 설치를 시작했다. httpd-2.2.2 와 subversion-1.3.1 을 받아서 설치하고
svn+ssh 방식으로 사용하도록 하려고 낑낑거리며 보니 사용자 DB를 관리하는 방식이 너무 마음에 안들었다.
서버에 각 사용자의 시스템계정을 만들어주거나 난해한 트릭(authorized_keys 에 command 를 이용하는 방식)을
사용해서 한 시스템계정을 공유하는 것...
후자가 그나마 나은 것 같아서 낑낑거리다가 포기했다.
그냥 svn:// 방식으로 사용하려고 하다가 눈의 띤 방법이 MySQL 로 인증하는 것..
그럼 관리도 쉽지 않은가? 이 방식은 http:// 나 https:// 를 사용해야 했다.
아무튼 마음을 정하고 작업 돌입...
httpd 와 subversion 을 세팅하고 mod_auth_mysql 을 빌드하니 컴파일이 안되었다.
불행히도 mod_auth_mysql 은 httpd-2.2.2 를 지원하지 않아서 2.0.58 로 다시 돌아갔다.참조 싸이트
subversion 이 apr-0.9.[5-9] 를 필요로 해서 apr과 apr-util 0.9.7 을 따로 받아서 빌드한 후에
다시 subversion 을 설치해야 했다.
음.. 사실은 apr-0.9.12 를 필요로 한다고 하는 것 같아서 그 놈도 빌드했었다 ㅡㅜ
그리고 허진영 선임의 도움을 또 받아가며 마무리....
- http://wiki.kldp.org/wiki.php/Subversion-HOWTO
말 그대로 하우투 - http://modauthmysql.sourceforge.net
아파치 웹서버 인증을 MySQL 로 할 수 있도록 해주는 모듈 - http://www.seungkyu.com
안승규 책임 블로그 - http://httpd.apache.org/docs/2.0/ko/programs/configure.html
httpd 빌드 옵션
./configure --prefix=/usr/local/apr-9.0.7
make
make-install
apr-util 0.9.7 build
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr-9.0.7
make
make install
httpd-2.0.58 build
./configure --prefix=/usr/local/apache2 --disable-suexec
--enable-so
--enable-proxy --enable-proxy-http --enable-ssl --with-ssl=/usr/local/ssl --enable-cache
--enable-ext-filter --with-z=/usr/include --enable-dav
--enable-mods-shared=most
--with-apr=/usr/local/apr-0.9.7 --with-apr-util=/usr/local/apr-0.9.7
make
make install
subversion 1.3.1 빌드
./configure --with-zlib --with-ssl
--with-apr=/usr/local/apr-0.9.7
--with-apr-util=/usr/local/apr-0.9.7
--with-apxs=/usr/local/apache2/bin/apxs
--without-berkeley-db --with-neon=/usr/lib
make
make install
mod_auth_mysql 3.0 빌드
apxs -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
apxs -i mod_auth_mysql.la
LoadModule mysql_auth_module modules/mod_auth_mysql.so httpd.conf 에 추가
MySQL 에 테이블 생성
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| user_name | varchar(30) | | PRI | | |
| user_password | varchar(50) | YES | | NULL | |
| user_group | varchar(10) | YES | | NULL | |
| user_full_name | varchar(50) | YES | | NULL | |
+----------------+-------------+------+-----+---------+-------+
httpd.conf 에 관련사항 설정
<Location /jake>
DAV svn
SVNPath /data/svn/jake
AuthType Basic
AuthName "jake's repository"
AuthMySQLHost localhost
AuthMySQLDB [DB명]
AuthMySQLUserTable user_info
AuthMySQLEnable On
AuthMySQLUser [DB user id]
AuthMySQLPassword [DB user password]
AuthMySQLPwEncryption scrambled
Require valid-user
</Location>
많이 내용들이 빠졌지만... 더 이상 자세히 쓰는 것은 불가!!





덧글