CentOS下安装Subversion (SVN)
一、配置支持HTTPS访问的SVN
所需工具 Subversion
Apache
SSL
1.安装Subversion和Apache的SVN模块插件
yum install subversion mod_dav_svn
2.安装Apache
yum install httpd httpd-devel
3.安装SSL和Apache的SSL模块插件
yum install openssl mod_ssl
4.创建test和test2两个资源库
svnadmin create /data/svn/test #创建资源库test
svnadmin create /data/svn/test2 #创建资源库test2
5.配置apache的subversion.conf插件
vi /etc/httpd/conf.d/subversion.conf ##将下面的注释放开,并进行修改
直接拷贝下面配置文件
<Location /svn> #对外访问的根路径,例如:http://ip/repos
DAV svn
SVNParentPath /data/svn #SVNParentPath指向所有资源库的父级目录;SVNPath指向单个资源库
# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
#Require SSL connection for password protection.
SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /data/svn/passwd #用户账号文件
Require valid-user
</LimitExcept>
</Location>
------------------选下面这个------------------------------
<Location /svn>
DAV svn
SVNParentPath /svn
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /svn/testsvn/conf/aa
AuthzSVNAccessFile /svn/testsvn/conf/bb
Require valid-user
</Location>
更改资源库的权限
#按照subversion.conf的提示,还要对每个资源库还要进行以下操作 chown -R apache.apache test chcon -R -t httpd_sys_content_t test
6.创建用户文件和资源权限文件
cd /data/svn htpasswd -c passwd test #-c 创建文件,创建用户test htpasswd passwd test2 #创建test2用户 vi authz #配置资源权限 [/] #表示根目录 /data/svn test=rw #表示test用户具有读写权限
OK,此时就可以启动apache,测试一下了
7.配置密钥文件,设置https登录有效
----------------------------------------------------------
一些问题:
1.chcon: can't apply partial context to unlabeled file `locks'
类似以上问题,解决如下:
vi /etc/selinux/config
SELINUX=enforcing 将selinux级别设为启用,重启selinux或linux系统即可。
2.如果启动httpd出现Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using
解决如下:
vi /etc/httpd/conf/httpd.conf 将里面的#ServerName localhost:80注释去掉即可。
3.authz文件详解
------------简易安装---------------------------------------------
一、单独安装SVN
1.直接安装SVN,可使用TortorseSVN访问
yum -y install subversion
2.创建repo资源库
##在/data/svn目录下创建test库
svnadmin create /data/svn/test
3.配置访问账户和权限
vi test/conf/svnserve.conf
去掉注释#和空格
password-db = passwd
authz-db = authz
vi test/conf/passwd
##添加
test=123
vi test/conf/authz
#配置资源权限,/表示test资源库根目录,[/test]则表示该资源库中test目录,rw表示读写权限,test表示用户或组
[/]
test=rw
4.启动SVN服务
svnserve -d -r /data/svn/test
5.使用客户端测试连接
svn://ip
OK,这样单独的svn就配置安装好了。
当然了,这里会有一个问题,如果我建立了多个repos库,怎么办呢?看下面
如果为了方便管理,多个项目使用不同的repos库,那么可以将他们放在同一目录下
svnadmin create /data/svn/test #创建资源库test
svnadmin create /data/svn/test2 #创建资源库test2
svnserve -d -r /data/svn #对外发布svn服务
这时就可以通过svn://ip/test 和svn://ip/test2 来访问不同的资源库了
--------------问题-------------------
1.show log显示 want to go offline?
找到相应的conf/svnserve.conf文件打开
找到anon-access = read,
改成anon-access = none
再看日志就可以了