putao-weilai

Centos下配置svn

安装

#查看是否已经安装过
rpm -qa subversion
#安装svn
yum -y install subversion
#apache安装svn模块
yum -y install mod_dav_svn

#看是否安装成功
subversion -v
#或者
svnserve --version

配置svn

#修改apache httpd配置
vi /etc/httpd/conf/httpd.conf
#将Listen 80改为Listen 81,然后重启
service httpd restart

#建立SVN库
mkdir /opt/svn
svnadmin create /opt/svn/repos
#执行上面的命令后,自动在repos下建立多个文件


#进入生成的conf目录
#其中authz 是权限控制,可以设置哪些用户可以访问哪些目录,   passwd是设置用户和密码的,    svnserve是设置svn相关的操作
cd /opt/svn/repos/conf
#添加用户名密码
vi passwd
	user1=password1

#设置权限
vi authz
[/]
user1= rw

#设定配置文件
vi svnserve.conf

anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd
authz-db = authz   # 访问控制文件
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
#采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

#启动svn
svnserve -d -r /opt/svn/repos --listen-port 3391
#然后可以通过svn://127.0.0.1:3391来访问

----------------------------------------
#创建用户和用户组
groupadd httpd
useradd httpd -g httpd
passwd httpd

# 配置仓库目录
chown -R httpd:httpd /opt/svn

chmod -R g+w /opt/svn/repos
chmod g+s /opt/svn/repos/db

#编辑httpd.conf,添加配置项(在最后添加)
vi /etc/httpd/conf/httpd.conf

<Location /svn>
    DAV svn
    SVNListParentPath on         # 允许在网页上显示svn父目录list
    SVNParentPath /opt/svn/
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile  /etc/svntrac.htpasswd

    #<LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    #</LimitExcept>
</Location>


#其中svntrac.htpasswd文件是通过htpasswd命令来创建的
htpasswd -c /etc/svntrac.htpasswd   user1
#添加新用户
htpasswd /etc/svntrac.htpasswd zhuyc

#修改httpd访问svn的权限
vi /etc/httpd/conf/httpd.conf

User httpd
Group httpd

#然后在浏览器中打开看是否配置成功
service httpd restart
http://www.testdomain.com/svn/


#进入生成的conf目录
#其中authz 是权限控制,可以设置哪些用户可以访问哪些目录,   passwd是设置用户和密码的,    svnserve是设置svn相关的操作
cd /opt/svn/repos/conf
#添加用户名密码
vi passwd
	user2=password2

#设置权限
vi authz
[/]#这边指定具体可以访问的哪个路径
user2= rw

#设定配置文件,这些配置项前面不能有空格
vi svnserve.conf

anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz   # 访问控制文件
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
#采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

#启动svn
svnserve -d -r /opt/svn/repos --listen-port 3391 --listen-host 0.0.0.0

#通过TortoiseSVN进行操作
svn://localhost:3391

#通过浏览器进行操作
http://localhost:81/svn/repos/

#如果报\'/opt/svn/repos/db/txn-current-lock\': Permission denied的解决方法
cd /opt/svn/repos/db
chown -R httpd:httpd txn-current
chown -R httpd:httpd current

#临时关闭SElinux
setenforce 0

Ubuntu下配置svn

安装

#首先得确保安装了apache2
sudo apt-get install apache2
sudo apt-get install apache2-utils

#编辑配置文件
sudo vi /etc/apache2/apache2.conf
#在配置文件顶部加上如下一行
ServerName 0.0.0.0
#打开端口配置文件,将端口监听修改为81
sudo vi /etc/apache2/ports.conf
#重启apache
sudo service apache2 restart

#安装svn server
sudo apt-get -y install subversion
sudo apt-get -y install libapache2-svn

svn服务端配置

#添加用户和组
sudo addgroup subversion
#将用户添加到组
sudo usermod -G subversion -a tsengdavid

#创建文件夹
sudo mkdir /home/svn

#创建项目目录
sudo mkdir /home/svn/myproject

#修改权限
sudo chown -R root:subversion /home/svn/myproject

#创建文件仓库
sudo svnadmin create /home/svn/myproject

#赋予组成员对所有新加入文件仓库的文件拥有相应的权限
sudo chmod -R g+rws /home/svn/myproject

#在浏览器中访问
file:///home/svn/myproject/
-------------------------------------------
#配置web访问方式
cd /etc/apache2/mods-available/
sudo vi dav_svn.conf
#加入如下内容
<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

#如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉!!!
#重启apache服务器
sudo /etc/init.d/apache2 restart
#然后就可以通过http来使用svn了
http://localhost:81/svn/myproject/

#创建新用户(会提示输入密码),如果提示htpasswd命令不存在就重新安装sudo apt-get install apache2-utils
sudo htpasswd -c /etc/subversion/passwd user2
#创建SVN用户文件之后我们还想再添加SVN用户的话,我们就不需要添加-c选项了
sudo htpasswd /etc/subversion/passwd zhangsan

#用户授权
sudo vi /etc/subversion/authz
#加入如下内容
#用户组指令
[groups]
#将用户liangzhichao添加到用户组subversion
subversion = rdy
#其他组
[myproject:/]
#为用户组subversion添加读写权限
@subversion = rw

#重启apache2
sudo /etc/init.d/apache2 restart

#此时迁入的话有权限问题,修改权限
sudo chmod -R 777 /home/svn/myproject

#然后就可以迁入迁出了,windows中也可
http://192.168.1.219:81/svn/myproject/

Unknown DAV provider: svn错误

这是因为系统没有安装mod_dav_svn,它是Subversion与Apache之间的接口(通过它,Apache就可以访问版本库,可以让客户端也使用HTTP的扩展协议 WebDAV/DeltaV进行访问)
[root@cnn001 conf]# yum install mod_dav_svn

[root@cnn001 conf]# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so

使用本地文件系统把/ta_parser项目导入到svn
[root@cnn001 ta_parser]# svn import /ta_parser http://svn/repos/tap/ta_parser -m "the tap parser project"
Adding         /ta_parser/HelloWorld.java
Committed revision 1.

selinux中的配置--成功

#查看selinux中httpd用户的权限
getsebool -a|grep httpd

#配置
chcon -R -t httpd_sys_content_rw_t /opt/svn/repos/

#这一句可不用设置,因为默认就是允许的
setsebool -P httpd_unified=1

相关推荐

 

分类:

技术点:

相关文章: