2012-09-14

FreeBSD] 아파치 서버과부하 해결책 - lingerd 설치법

작성 : 구자열 by webhost (danda@nate.com)

1. lingerd란 무엇일까?


아파치에서 갑작스런 libhttpd.ep 혹은 httpd가 상승하여 cpu혹은 메모리를 과도하게 점유할 경우, 일정 튜닝으로 이를 막을 순 있지만, Dos상당의공격에서는 데먼은 저절로 죽어버린다.

이때, lingerd라는 엑셀레이트를 설치하면, 아파치는 해당 과부하 프로쎄서를 죽이면서 서버가 죽는 것을 방지할 수 있다.

2. lingerd 구하기


http://www.iagora.com/about/software/lingerd/

3. 설치하기


mkdir -p /var/run/lingerd/
chown nobody.nobody /var/run/lingerd/
chmod 700 /var/run/lingerd/

tar xvzf lingerd-xxx.gz
cd lingerd-xxx
make
이렇게 하면 lingerd란 바이너리가 생긴다.

cp lingerd /usr/local/sbin
cp extra/lingerd.rc /etc/rc.d/init.d/lingerd
chkconfig --level 3 lingerd on
이렇게 해서 부트로더에 올린다.

/etc/rc.d/init.d/lingerd start


    cp apache-1.3/ap_lingerd.c li_config.h $APACHE/src/main/
    patch -p0 -d $APACHE/src/ < apache-1.3/aplinger.diff

이 과정은 아파치를 위한 과정이다.
아파치소스가 있는 폴더가 $APACHE라고 가정해서 입력하라.
즉 $APACHE는 님의 환경에 맞는 절대경로를 입력하면 된다.

이제 패치가 완료되면, APM설치과정과 같이

apache> ./configure --prefix=/usr/local/apache
apache> cd ../php-4.0.24
php> ...설치과정진행
php> cd ../apache
apache> 설치과정진행 ./configure....-> make -> make install

이렇게 하여 설치를 완료한다.

apache 재구동한다.

설치완료
- 이제부터 /var/log/messages 에 로그가 생성된다.
- /var/run/lingerd/에는 프로쎄서가 동작한다.
- /usr/local/apache/logs/error_log에는 문제발생시, 에러로그가 기록된다.

이렇게함으로써 아파치에 대한 안전한 운영이 가능해진다.

FreeBSD]rotatelog를 사용하여 아파치 로그 줄이기.


rotatelogs - 아파치 로그를 순환하기위해 파이프로 연결할 로그 프로그램


가능한 언어:  en  |  ko



rotatelogs는 아파치의 파이프 로그파일 기능을 위한 간단한 프로그램이다. 예를 들어:


  CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common 



그러면 /var/logs/logfile.nnnn 파일을 만든다. nnnn은 로그를 시작한 시스템시간이다 (이 시간은 항상 순환기간의 배수이다. 그래서 cron 스크립트로 처리하기 쉽다). 순환기간 (여기서는 24 시간) 마다 새로운 로그를 시작한다.



  CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common 



이 설정은 로그파일 크기가 5 메가바이트가 될때마다 순환한다.



  ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 



이 설정은 오류로그 파일 크기가 5 메가바이트가 될때마다 errorlog.YYYY-mm-dd-HH_MM_SS와 같은 파일을 만들어서 오류로그 파일을 순환한다.



개요
옵션
포팅가능성 


  개요

  rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]


  옵션

  logfile 

  로그파일의 경로와 이름. logfile에 '%' 문자가 있다면 strftime(3)의 형식문자열과 같이 처리한다. '%' 문자가 없다면 뒤에 초단위 시간 .nnnnnnnnnn을 자동으로 붙인다. 두 형식 모두 현재 기간부터 시작시간을 계산한다.


  rotationtime 

  로그파일을 순환할 초단위 시간.


  offset 

  UTC에서 분단위 시간차이. 생략하면 0으로 가정하여 UTC를 사용한다. 예를 들어, UTC -5 시간대의 지역시간을 사용한다면 아규먼트로 -300을 지정한다.


  filesizeM 

시간이 아닌 크기를 지정할때 메가바이트단위 최대 파일크기 뒤에 M을 붙인다. rotationtime과 offset 대신 이 파라미터를 사용한다.




  포팅가능성


  다음 로그파일 형식문자열 표현은 모든 strftime(3) 구현이 지원해야 한다. 라이브러리 특유의 확장은 strftime(3) manpage를 참고하라.



  %A (지역화된) 완전한 요일 이름
  %a (지역화된) 3-문자 요일 이름
  %B (지역화된) 완전한 달 이름
  %b (지역화된) 3-문자 달 이름
  %c (지역화된) 날짜와 시간
  %d 2-자리 일
  %H 2-자리 시간 (24 시간 시계)
  %I 2-자리 시간 (12 시간 시계)
  %j 3-자리 날짜수
  %M 2-자리 분
  %m 2-자리 달
  %p (지역화된) 12 시간 시계의 am/pm
  %S 2-자리 초
  %U 2-자리 주일수 (주의 첫번재 날은 일요일)
  %W 2-자리 주일수 (주의 첫번재 날은 월요일)
  %w 1-자리 요일수 (주의 첫번째 날은 일요일)
  %X (지역화된) 시간
  %x (지역화된) 날짜
  %Y 4-자리 연도
  %y 2-자리 연도
  %Z 시간대 이름
  %% 문자그대로 `%'



from: http://httpd.apache.org/docs-2.0/programs/rotatelogs.html

FreeBSD] ab (아파치 응답속도를 측정하는 툴)


ab
ab는 “Apache HTTP server Benchmarking tool”의 약어로서  아파치서버의 응답속도를 측정하는 밴치마킹툴입니다.
ab라는 툴을 이용하여 아파치의 응답속도를 테스트하고 그 결과를 다양한 방면으로 확인할 수 있습니다.  

사용형식
ab [ -k ] [ -i ] [ -n 요청수 ] [ -t 시간제한 ] [ -c 동시접속 ] [ -p POST file ] [ -A 인증 유저이름:패스워드 ] [ -P 프락시인증 유저이름:패스워드 ] [ -H Custom header ] [ -C Cookie name=value ] [ -T content-type ] [ -v verbosity ] ] [ -w HTML 출력 ] ] [ -x 속성 ] ] [ -y  속성 ] ] [ -z  속성 ] [http://]서버이름[:port]/path 

ab [ -V ] [ -h ]

사용예 #1
V를 사용하시면 설치되어 있는 ab의 버전을 확인하실 수있습니다. 아래 결과는 현재 필자가 사용하고 있는 ab의 버전이 2.0.40이라는 것을 표시하고 있습니다. 
[root@host3 bin]# ab -VThis is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
[root@host3 bin]#
사 용예 #2
수퍼유저코리아(www.superuser.co.kr)의 응답속도를 측정한 것입니다. 참고로 사이트URL의 마지막에는 반드시 "/"가 들어가야함에 주의하시기 바랍니다.  여기서 사용한 옵션 -n은 측정을 위한 웹페이지 요청수를 의미합니다. 즉 "-n 1"이라고 한 것은 지정한 URL을 한번의 요청만으로 결과를 표시한다는 의미입니다.
[root@host3 bin]# ab -n 1 http://www.superuser.co.kr/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.superuser.co.kr (be patient).....done

Server Software:        Apache/2.0
Server Hostname:        www.superuser.co.kr
Server Port:            80
Document Path:          /
Document Length:        458 bytes
Concurrency Level:      1
Time taken for tests:   1.499567 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Total transferred:      700 bytes
HTML transferred:       458 bytes
Requests per second:    0.67 [#/sec] (mean)
Time per request:       1499.567 [ms] (mean)
Time per request:       1499.567 [ms] (mean, across all concurrent requests)
Transfer rate:          0.00 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       17   17   0.0     17      17
Processing:  1482 1482   0.0   1482    1482
Waiting:     1481 1481   0.0   1481    1481
Total:       1499 1499   0.0   1499    1499
[root@host3 bin]#
사 용예 #3
다음과 같이 -c옵션을 사용하면 한번에 수행할 다중 요구수를 지정할 수 있습니다.  지정하지 않는다면 기본값은 1이 됩니다.  테스트시에 c 30이라고 주었으며, 결과를 보시면 concurrency Level30이라는 것을 보실 수 있을 것입니다. 즉, 동시에 다중세션을 테스트한 것이며 그 결과를 확인 할 수 있습니다. 결과값의 분석은 앞에 설명된 내용과 비교하면서 보시기 바랍니다.
[root@host3 bin]# ab -c 30 http://www.yahoo.com/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.yahoo.com (be patient).....done

Server Software:       
Server Hostname:        www.yahoo.com
Server Port:            80
Document Path:          /
Document Length:        32247 bytes
Concurrency Level:      30
Time taken for tests:   1.75287 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Total transferred:      32600 bytes
HTML transferred:       32247 bytes
Requests per second:    0.93 [#/sec] (mean)
Time per request:       32258.610 [ms] (mean)
Time per request:       1075.287 [ms] (mean, across all concurrent requests)
Transfer rate:          28.83 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      208  208   0.0    208     208
Processing:   866  866   0.0    866     866
Waiting:      219  219   0.0    219     219
Total:       1074 1074   0.0   1074    1074
root@host3 bin]#

저작권:수퍼유저코리아(www.superuser.co.kr), 무단 재배포및 복사를 금합니다.

FreeBSD] Using Subversion for Collaborative Development-- subversion 설치






혹시 몰라서 내용을 아래 부분에 첨부 합니다.
이 글은 bsdguides.org 의 내용을 그대로 옮긴 부분입니다.


========================================
Print View
Using Subversion for Collaborative Development
Updated: 07/15/2005

General Information
Subversion (SVN) is an alternative to using Concurrent Version System (CVS) for collaborative development, though it has other uses if you develop on more than one machine and wish to keep all your work in a central location.  This guide will show you how to setup Subversion with Webaccess via the Apache2 mod_dav svn module.  If you already use apache 1.3 you can continue to use that, just change the port that apache2 listens on in its httpd.conf file.

Subversion Book is an excellent resource for information outside the scope of this guide.
Requirements
  1. Local root access on the box or be able to su to root.
  2. A SSH client such as puTTy or SecureCRT (if you are setting it up remotely).
  3. A plain text editor, I prefer nano
Installation
We have to start out by building apache2.  Because we are building it with the intention of using Subversion with it, we must build it with Berkeley DB (sleepycat) support, as the Subversion filesystem is actually built as a sleepycat database.  It is this that allows for the versioning of files.
#
#
cd /usr/ports/www/apache2
make install WITH_BERKELEYDB=db42
We make sure that the apache2 aprutil library is known, this file sometimes seems to get "lost"
#
#
#
ldconfig -m /usr/local/lib/apache2/
echo "/usr/local/lib/apache2" >> /etc/ld.so.conf
echo "/usr/local/lib/apache2" >> /etc/ld-elf.so.conf
Instruct the Operating System to run apache2 at startup
#echo 'apache2_enable="YES"' >> /etc/rc.conf
Now to build Subversion
#
#
cd /usr/ports/devel/subversion
make install -DWITH_MOD_DAV_SVN
Configuration
OK, subversion and apache with berkeley db support are now compiled and installed.  You have a choice of either creating a single huge repository for all of your projects, or individual repositories for each.  I will detail each now.
General Setup
Create Subversion Home folder
#mkdir -p /usr/home/svn
Create a generic repository format
#
#
#
mkdir -p /usr/home/svn/default/trunk
mkdir /usr/home/svn/default/branches
mkdir /usr/home/svn/default/tags
Copy some files will need for the web interface
#cp /usr/ports/devel/subversion/work/subversion-1.0.6/tools/xslt/* /usr/local/www/data-dist/
Note:  The path to the tools/xslt will change with versions of subversion so change the <em>subversion-1.0.6</em> to whatever it is for your version of subversion, ie subversion-1.0.7 or subversion-1.0.8 and so on.
Setup Blanket Access:  If you wish to enable htaccess style password login to the subversion repository then use this system. This is the basic access control system, which can be extended to enable per directory access control as well.
#
#
mkdir /usr/home/svn/access
touch /usr/home/svn/access/users
Create the users using the htpasswd utility
#htpasswd -mb /usr/home/svn/access/users <em>username</em> <em>password</em>
Configuring Apache2 for Blanket Access control
#nano -w /usr/local/etc/apache2/httpd.conf
Add the following to the httpd.conf file, this can be at the bottom or wherever, it will create ahttp://www.myservername.com/svn/ URL which you can then access
## SVN WebDAV Repository Setup
<Location /svn>
     DAV svn
     SVNParentPath /usr/home/svn/repos
     SVNIndexXSLT "http://www.myservername.com/svnindex.xsl"
    
     # anonymous first
     Satisfy Any
     Require valid-user
    
     # authenticating them valid ones
     AuthType Basic
     AuthName "Subversion Repositories"
     AuthUserFile /usr/home/svn/access/users
</Location>
This can also be placed inside a virtual host directive

Extending the Blanket Access control to enable Per-Directory Access control
#touch /usr/home/svn/access/control
If you are going to use a single large repository with all your projects in and you wish to allow and deny some users access to certain parts of the repository, then you can setup the control file like this.  In this example I will use users with the names of admin, manager (a project manager), commiter, client.  The access rules are inheritted, but I will demonstrate how to override an inheritted value.  If someone is not mentioned at all within the tree, then they are denied access.
[/]
admin = rw
manager = r

[/bigproject]
manager = rw
commiter = r

[/bigproject/trunk]
commiter = rw
client = r

[/bigproject/branches]
client = r

[/bigproject/trunk/manager_notes]
client =
commiter =
In this file from the very start the admin has full rights to the whole repository, and the manager can read and see all of the projects, but he has full access to the whole of the bigproject folder and the commiter can read the whole of the bigproject folder, all the development is to be kept in trunk so the commiter has full access to that, and the clients might want to be able to get the latest builds of a project, so they can read it.  They might also want access to the stable branches, so they are allowed read access to that.  Finally, the project manager has some project notes which he doesn't want anyone else to gain access to, so the client and commiter are set to empty permissions which denys them access to that folder.  You can also specify general access rights for all by using the '*' and assigning access rights to that.
Now the same again, but using per directory access control on a multiple repository system
[bigproject:/]
admin = rw
manager = rw
commiter = r

[bigproject:/trunk]
commiter = rw
client = r

[bigproject:/branches]
client = r

[bigproject:/trunk/manager_notes]
client =
commiter =
Edit the apache2 config file to use per-directory access control.  Find the Blanket Access control Location area and add the below lines just underneath the SVNIndexXSLT
# If we are using the Per-Directory Access Control then we leave this uncommented
# Access Control
AuthzSVNAccessFile /usr/home/svn/access/control
It should look like this
## SVN WebDAV Repository Setup
<Location /svn>
     DAV svn
     SVNParentPath /usr/home/svn/repos
     SVNIndexXSLT "http://www.myservername.com/svnindex.xsl"
    
     # If we are using the Per-Directory Access Control then we leave this uncommented
     # Access Control
     AuthzSVNAccessFile /usr/home/svn/access/control
    
     # anonymous first
     Satisfy Any
     Require valid-user
    
     # authenticating them valid ones
     AuthType Basic
     AuthName "Subversion Repositories"
     AuthUserFile /usr/home/svn/access/users
</Location>
Building a Single General Repository
Create our single main repository
#
#
svnadmin create /usr/home/svn/repos
svn import /usr/home/svn/default file:///usr/home/svn/repos -m "initial import"
Should you later want to divide this repository into project folders, you will need to checkout the whole repository and use the svn move, svn copy and so on commands, which can be found in the Subversion Book
Building a Multiple Project Repository
Make a new repository
#
#
#
mkdir /usr/home/svn/repos
svnadmin create /usr/home/svn/repos/<em>projectname</em>
svn import /usr/home/svn/default file:///usr/home/svn/repos/<em>projectname</em> -m "Initial Import"
Final Setup
Make sure that apache can read the svn repositories
#chown -R www:www /usr/home/svn
and make the access control and userlist readable only by apache.  All the contents are pretty much encrypted, but you don't want other shell users peeking at them, though they could get through via a php script, but this is the best way to go about it.
#
#
chmod 600 /usr/home/svn/access/control
chmod 600 /usr/home/svn/access/users
There, you now have a fully working Subversion Repository.  To checkout the contents of the trunk of a project in your repository via the command line tool
#svn checkout http://www.mydomain.com/svn/<em>projectname</em>/trunk <em>projectname</em>
this will make a folder called "projectname" in the current folder you are in when you run the command.


Once you have made changes to a project you can commit those changes by changing into the project folder then
#svn commit -m "Notes regarding the changes"
And finally to update your copy of the code from the repository, change into the project folder then
#svn update
These commands are all for the SVN Command line tool, which is installed as part of the devel/subversion port.  If you wish to use the command line tool and not create the files needed for running a repository with apache2, then use
#
#
cd /usr/ports/devel/subversion
make install clean
and skip the remaining steps.

There is also a range of clients.  The best for Windows, in my opinion, is TortoiseSVN, a comprehensive list of other clients for SVN can be found here
Author: Geffy
w00t at stealth-ninja dot co dot uk
==============================================================

FreeBSD] Subversion설치(FreeBSD6.1R)_1185418705


Subversion mini HowTo
버전 관리 프로그램인 Subversion 서버 설치에 대한 간단한 문서입니다.

환경 :
Server 환경 :
OS : FreeBSD 6.1 Released
Subversion : 1.3.0
Apache 2.2
Berkeley Database 사용

Client 환경 :
OS : 윈도우
TortoiseSVN


Requirement :
F reeBSD 6.1 / Windows family
Apache2.2
Subversion 1.3.0
TortoiseSVN
설치 작업은 반드시 root 권한으로 작업한다.

위 사항에서 FreeBSD상에서 돌아가는 것은 ports 시스템을 이용하여 설치

설치 순서 :
1. Apache2.2
2. Apcahe2.2 설정
3. Subversion 설치
4. Subversion 설정


Installation
1. Apache Installa tion
1.1. Apache2.2 설치
##cd /usr/ports/www/apache2make install WITH_MOD_DAV_SVN=yes WITH_BERKELEYDB= yes

1.2. 설정 확인
#
##
ldconfig -m /usr/local/lib 
아래 사항은 확인만 하면 됩니다.(6.1버전에서는 아래 사항은 하지 않아도 됨) echo "/usr/local/lib/apache2" >> /etc/ld.so.confecho "/usr/local/lib/apache2" >> /etc/ld-elf.so.conf

1.3. apache가 자동으로 실행되게 하기 위해 rc.conf 파일에 등록하기
#echo 'apache2 2_enable="YES"' >> /etc/rc.conf

2. Subversion Installation
2.1 Subversion 설치
##cd /usr/ports/devel/subversionmake install -DWITH_MOD_DAV_S VN

2.2 Subversion 설정(configuration)
Subversion Home folder 생성
#mkdir -p /home/svn

저장소 포맷 생성하기
###mkdir -p /home/svn/default/trunkmkdir /home/svn/default/branchesmkdir /home/svn/default/tags

웹인터페이스를 위한 파일 복사
#cp /usr/ports/devel/subversion/wo rk/subversion-1. 3. 0/tools/xslt/* /usr/local/www/data-dist/^^^^^^^^^^^^^^^^^^^^^^^^^이부분은 web doc root 입니다.

사용자 접근을 제어하기 위해 빈 파일 생성
##mkdir /home/svn/accesstouch /home/svn/access/users <- user파일을 생성하는 명령어

apache에서 제공하는 htpasswd 파일을 이용하여 사용자의 계정과 비밀번호 생성
#htpasswd -mb /home/svn/access/users username password

Apache의 설정파일인 httpd.conf 파일 수정하기
#vi /usr/local/etc/apache2 2/httpd.conf

Httpd.conf의 내용 중 일부
사용자들이 웹으로 접근하기 위해서는 아래의 문장이 들어가 있어야지 됨.
이것의 의미는 /home/svn/access/users 파일에 등록된 사용자만이 접근가능하다는 의미
/svn/sample >
DAV svn
SVNPath /home/svn/sample
AuthType Basic 
AuthName "Subversion Repository" 
AuthUserFile / home/svn/access/users 
Require valid-user
외부에서 접근할 때는 #svn checkout http://서브버전 서버IP/svn/sample 로 접근이 가능하다.

FreeBSD] subversion on FreeBSD 6.1R (간단하게 설치하기)



Subversion mini HowTo
버전 관리 프로그램인 Subversion 서버 설치에 대한 간단한 문서입니다.

환경 :
Server 환경:
OS : FreeBSD 6.1 Released
Subversion : 1.3.0
Apache 2.2
Berkeley Database 사용

Client 환경 :
OS : 윈 도우
TortoiseSVN


Requirement :
FreeBSD 6.1 / Windows family
Apache2.2
Subversion 1.3.0
TortoiseSVN
설 치 작업은 반드시 root 권한으로 작업한다.

위 사항에서 FreeBSD상에서 돌아가는 것은 ports 시스템을 이용하여 설치

설치 순서 :
1.Apache2.2
2.Apcahe2.2 설정
3.Subversion 설치
4.Subversion 설정


Installation
1. Apache Installation
1.1. Apache2.2 설치

#cd /usr/ports/www/apache2
#make install WITH_MOD_DAV_SVN=yes WITH_BERKELEYDB=yes


1.2. 설정 확인

#ldconfig -m /usr/local/lib

 아래사항은확인만하면됩니다.(6.1버전에서는아래사항은하지않아도됨)
#echo "/usr/local/lib/apache2" >> /etc/ld.so.conf
#echo "/usr/local/lib/apache2" >> /etc/ld-elf.so.conf


1.3. apache가 자동으로 실행되게 하기 위해 rc.conf 파일에 등록하기

#echo 'apache22_enable="YES"' >> /etc/rc.conf


2. Subversion Installation
2.1 Subversion 설치

#cd /usr/ports/devel/subversion
#make install -DWITH_MOD_DAV_SVN


2.2 Subversion 설정(configuration)
   Subversion Home folder 생 성
 
   #mkdir -p /home/svn
 
 
   저장소 포맷 생성하기
 
   #mkdir -p /home/svn/default/trunk
   #mkdir /home/svn/default/branches
   #mkdir /home/svn/default/tags
 
 
   웹인터페이스를 위한 파일 복사
 
 
   #cp /usr/ports/devel/subversion/work/subversion-1.3.0/tools/xslt/*
   /usr/local/www/data-dist/
   ^^^^^^^^^^^^^^^^^^^^^^^^^이부분은 web doc root 입니다.
 
 
   사용자 접근을 제어하기 위해 빈 파일 생성
 
   #mkdir /home/svn/access
   #touch /home/svn/access/users <- user파일을생성하는명령어
 
 
   apache에서 제공하는 htpasswd 파일을 이용하여 사용자의 계정과 비밀번호 생성
 
   #htpasswd -mb /home/svn/access/users username password
 
 
   Apache의 설정파일인 httpd.conf 파일 수정하기
 
   #vi /usr/local/etc/apache22/httpd.conf
 
 
   Httpd.conf의 내용 중 일부
   사용자들이 웹으로 접근하기 위해서는 아래의 문장이 들어가 있어야지 됨.
   이것의 의미는 /home/svn/access/users 파 일에 등록된 사용자만이 접근가능하다는 의미
             <Location /svn/sample>DAV svnSVNPath /home/svn/sampleAuthTypeBasicAuthName"Subversion Repository"AuthUserFile /home/svn/access/users  Requirevalid-user</Location>
           
 
 
 
   외부에서 접근할 때는 #svn checkout http://서브버전 서버IP/svn/sample 로 접근이 가능하다.


2012-09-13

FreeBSD] Subversion + Apache on FreeBSD 간단한 설치 가이드



이 글의 출처는 http://www.xinublog.com/198 입 니다.
! 아래 설치 가이드는 Berkeley DB를 사용하지 않는 것을 전제로 하고 있습니다.
! Apache2.x대를 권장합니다.

1. 먼저 아파치를 설치한다.
# cd /usr/ports/www/apache2
# make install WITH_MOD_DAV_SVN=yes

/usr /local/etc/apache22/httpd.conf에 아래 설정을 확인 및 추가합니다.
          LoadModule dav_module         modules/mod_dav.so

          LoadModule dav_svn_module     modules/mod_dav_svn.so
          

          <Location /svn/sample>

            DAV svn

            SVNPath /home/svn/sample

          </Location>
          

2. Subversion을 설치한다.
# cd /usr/ports/devel/subversion
# make install -DWITH_MOD_DAV_SVN WITHOUT_BDB=yes

http://(Subversion 과 Apache를 설치한 IP주소 또는 도메인)/svn/sample 로 접속을 합니다.
          Revision 0: /

          

          --------------------------------------------------------------------------------

          Powered by Subversion version 1.0.0.