005-centos7svn 서버 구축

4196 단어

하나.svn 서비스 설치

yum install subversion
# 
svnserve –version

2.버전 라이브러리 만들기


루트 디렉토리가/opt/svn에 있다고 가정합니다.
svnadmin create /opt/svn/project/ 

셋.svn 서버 설정


저장소 루트 디렉토리에서 수정

3.1 사용자 이름 암호 passwd 구성

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
admin=admin8899

3.2 디렉터리 접근 권한 설정 authz

cat authz 
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
admin=rw
*=rw

프로젝트의 하위 디렉터리에 대한 액세스 권한을 수정하거나 그룹을 기반으로 관리 권한을 변경할 수 있습니다

3.3 전체 설정svnserve.conf


다음 메모 열기
anon-access = none                     # 
auth-access = write                    # 
password-db = passwd                   # 
authz-db = authz                       # 
#realm = spring-hello-world             # , 

3.4 방화벽 문제


시스템ctl로 서버의 방화벽 설정을 검사합니다.
$ firewall-cmd --list-all
public (default, active)
  interfaces: eno16777736 eno33554984
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

텔레넷 서비스와 3690 포트가 없습니다.telnet 서버 및 3690 포트 추가:
$ sudo firewall-cmd --permanent --add-service=telnet
$ sudo firewall-cmd --permanent --add-port=3690/tcp
$ sudo firewall-cmd --reload

사.SVN 서비스


SVN 서비스를 시작합니다.

$ sudo systemctl start svnserve.service

서비스가 시작되었는지 확인하십시오.

$ ps aux | grep svn
root      16349  0.0  0.1 162180   900 ?        Ss   15:01   0:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /opt/svn

Netstat을 통해 SVN이 3690 포트를 열었음을 확인할 수 있습니다.
$ sudo netstat -tnlp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      16349/svnserve 

전원을 켜고 시작하도록 설정합니다.

$ sudo systemctl enable svnserve.service

svnserve -d -r/var/www/svn

5.오류 해결

  • svnserve.conf:12: Subversion이 프로필svnserve를 읽기 때문에 Option이 예상됩니다.conf 시 선행 공백이 있는 프로필을 식별할 수 없습니다
  • Invalid authz configuration 원인은svn 서버의 authz 파일 설정이 정확하지 않기 때문입니다. 존재하지 않는 사용자 그룹에 권한을 설정하는 오류가 발생했습니다
  • centos7 Can't open file 'db/txn-current-lock': Permission denied

  • 주로 두 가지 가능성이 있다
    1. 디렉터리 권한:
    ​ chmod -R 775/opt/svn
    svn 제출을 시도합니다. 가능하면 끝, 안 되면 계속 아래로
    2. linux 서버의 경우 SElinux를 종료해야 합니다.
    다음 재부팅 후 임시 종료: setenforce 0
    영구 종료: vi/etc/sysconfig/selinux # SELINUX=disable 구성

    참조 링크

  • CentOS 7 에서 구성 SVN 서버를 구축합니다
  • svn은 각 디렉터리의 권한을 세밀하게 설정합니다
  • 좋은 웹페이지 즐겨찾기