文章目录
  1. 1. CentOS 6.0安装配置subversion
  2. 2. 安装subversion

CentOS 6.0安装配置subversion

SVN(SubVersion) linux centOS

CentOS 6.0安装配置subversion  

2011-11-18 20:35:06|  分类: CVS |举报|字号 订阅
环境:
a. 系统为centos 6.0
b. 分为svn协议和http协议方式
c. 使用svnadduser同时更新svn协议的密码文件和http协议的密码文件

  1. 安装

安装subversion

yum install subversion  
# 安装apache  
yum groupinstall   
# 安装mod_dav_svn模块  
yum install mod_dav_svn 
“Web Server”组中包含httpd的安装包

  1. 配置apache

vi /etc/httpd/conf/httpd.conf  
# 设置监听地址  
Listen 192.168.1.11:8080  
# 设置ServerName  
ServerName 192.168.1.11:8080 
3. 建立Svn

mkdir -p /data/subversion  
cd /data/subversion  
svnadmin create shell  
chown -R apache:apache shell  
# 权限文件和认证文件都放在以下目录  
mkdir /data/subversion/conf 
一定要改变所创建的Svn目录的拥有者为Web服务器运行的用户,否则出现不能写入这些权限错误,这里为apache

  1. 使用svn协议

a. 编辑svn项目的配置文件,这个文件在用svnadmin创建的目录的conf子目录下

vi /data/subversion/shell/conf/svnserve.conf  
# 匿名用户不能访问,认证用户具有写权限  
anon-access = none 
auth-access = write 
# 设置权限和密码文件  
password-db = /data/subversion/conf/passwd  
authz-db = /data/subversion/conf/authz  
# 认证登陆提示信息  
realm = linuxjcq shell 
b. 创建权限文件和用户名文件

cd /data/subversion/conf  
# 配置权限:  
vi authz  
# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制  
# 组成员用逗号分隔  
[groups]  
admin = jcq 
 
# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]  
[/]  
@admin = rw 
* = 
# 配置用户名和密码  
vi passwd  
jcq = xxxxxx 
…… 
c. 将svn添加为服务

vi /etc/sysconfig/subversion  
# 文件中为启动要加的选项  
OPTIONS=”–listen-host 192.168.1.11 –listen-port 3690 -r /data/subversion -d” 
vi /etc/rc.d/init.d/svnserve  
#!/bin/bash  
#  
# /etc/rc.d/init.d/subversion  
#  
# Starts the Subversion Daemon  
#  
# chkconfig: 2345 90 10  
# description: Subversion Daemon  
 
# processname: svnserve  
 
source /etc/rc.d/init.d/functions  
 
[ -x /usr/bin/svnserve ] || exit 1  
 
### Default variables  
SYSCONFIG=”/etc/sysconfig/subversion” 
 
### Read configuration  
[ -r “$SYSCONFIG” ] && source “$SYSCONFIG”  
 
RETVAL=0 
prog=”svnserve” 
desc=”Subversion Daemon” 
 
start() {  
echo -n $”Starting $desc ($prog): “  
daemon $prog $OPTIONS  
RETVAL=$?  
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog  
echo  
}  
 
stop() {  
echo -n $”Shutting down $desc ($prog): “  
killproc $prog  
RETVAL=$?  
[ $RETVAL -eq 0 ] && success || failure  
echo  
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog  
return $RETVAL  
}  
 
case “$1” in  
start)  
start  
;;  
stop)  
stop  
;;  
restart)  
stop  
start  
RETVAL=$?  
;;  
condrestart)  
[ -e /var/lock/subsys/$prog ] && restart  
RETVAL=$?  
;;  
*)  
echo $”Usage: $0 { start|stop|restart|condrestart }”  
RETVAL=1 
esac  
 
exit $RETVAL 
chmod 0755 /etc/rc.d/init.d/svnserve  
chkconfig –add svnserve  
service svnserve start 
也可以直接手动启动,例如:svnserve –listen-host 192.168.1.11 –listen-port 3690 -r /data/subversion -d
编辑/etc/rc.d/rc.local文件中加入这个启动命令

  1. 使用http协议

a. 配置

vi /etc/httpd/conf.d/subversion.conf  
# 确认这两行的存在  
LoadModule dav_svn_module modules/mod_dav_svn.so  
LoadModule authz_svn_module modules/mod_authz_svn.so  
 
# 配置svn仓库  
<Location /subversion> 
DAV svn   
SVNParentPath /data/subversion  
 

htpasswd -cm /data/subversion/conf/htpasswd.users jcq  
New password:   
Re-type new password: 
开始时你要利用 -cm 这个选项。它会创建文件并用 MD5 将口令加密。如果你需要加用户,请确定你只使用 -m 选项,而不包含初次创建时的 -c。

c. 创建权限文件

vi /data/subversion/conf/authz  
# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制  
# 组成员用逗号分隔  
[groups]  
admin = jcq   
 
# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]  
[/]  
@admin = rw 
* = 

我的svn协议和http协议使用相同的权限控制文件

d. 启动apache

service httpd start   

 

 

svnmanager安装配置

 

说明:系统为CentOS 6.0,svn的配置和安装见前面一篇文章

  1. 安装php和必要的软件包

yum groupinstall “PHP Support”  
yum install php-mysql php-mbstring  
# 安装VersionControl_SVN  
/usr/bin/pear install -f –alldeps VersionControl_SVN 
2. 修改Svn父目录的权限:让apache对所有的svn目录和conf配置文件目录拥有控制权限

chown -R apache.apache /data/subversion 
3. 去官网下载svnmanager:http://svnmanager.[sourceforge.net/并解压](http://sourceforge.net/%E5%B9%B6%E8%A7%A3%E5%8E%8B)

wget http://nchc.dl.sourceforge.net/project/svnmanager/svnmanager/1.08/svnmanager-1.08.tar.gz -P /usr/local/src  
tar zxvf /usr/local/src/svnmanager-1.08.tar.gz -C /var/www/html/  
cd /var/www/html  
mv svnmanager-1.08 svnmanager && chown -R apache.apache svnmanager  
4. 配置apache

vi /etc/httpd/conf.d/svnmanager.conf  
<Location “/var/www/html/svnmanager/“> 
Order deny,allow  
Deny from all  
Allow from all  
 
5. 创建数据库

mysql -uroot -p  

 create database subversion;  
 grant all on subversion.* to subversion@’192.168.1.10’ identified by ‘xxxxxx’; 
6. 编辑配置文件

cd /var/www/html/svnmanager  
cp config.php.linux config.php  
vi config.php  
# 设置语言  
$lang = “zh_CN.utf8”;  
# 设置二进制文件的位置  
$htpassword_cmd = “/usr/bin/htpasswd”;  
$svn_cmd = “/usr/bin/svn”;  
$svnadmin_cmd = “/usr/bin/svnadmin”;  
# 设置Svn配置文件目录,Svn的父目录,Svn的http方式的认证文件,权限控制文件  
$svn_config_dir = “/data/subversion/conf”;  
$svn_repos_loc = “/data/subversion”;  
$svn_passwd_file = “/data/subversion/conf/htpasswd.users”;  
$svn_access_file = “/data/subversion/conf/authz”;  
# 设置svn协议密码文件的位置  
$svnserve_user_file=”/data/subversion/conf/passwd”;  
# 设置mysql数据连接  
$dsn = “mysqli://subversion:password@192.168.1.10/subversion”; 
7. 重启启动apache,访问svnmanager

service httpd restart 
访问http://servername:port/svnmanager,会自动建svn的数据表,第一次登陆的用户名和密码都为admin,登陆后新建一个管理员用户,admin在第一次登陆后注销会为不可用
8. 汉化
解压,覆盖到主目录的svnmanager子目录的文件即可

文章目录
  1. 1. CentOS 6.0安装配置subversion
  2. 2. 安装subversion