当前位置:首页 > 技术文章 > 技术建站类 > CENTOS安装SVN
CENTOS安装SVN
文章来源:本站原创  浏览次数:106  发布日期:2013-02-05

由于nginx不支持http方式访问subversion。也就是没有扩展。所以我们只能用svn协议来访问版本库。

其实平时也用不上http的版本库访问。那就干脆直接用svn协议了。配置起来也方便。

1.安装subversion

yuminstall subversion

2.建立版本库,本例中我们的版本库建立在/var/www/svn,假设该版本库目录为bbs

cd/var/www

mkdirsvn

svnadmincreate deallol

3.配置

刚才建立了bbs这个svn版本库,需要配置的有通用认证方式,用户名和密码,权限配置这三个文件,分别是/var/www/svn/deallol下的conf下的svnserve.confpasswd authz这三个文件。

svnserve.conf:

anon-access= none
auth-access = write
password-db = passwd

passwd文件:
user1:password1
user2:password2

4.启动
配置成功以后,启动svn版本库服务
svnserve -d --listen-port 3690 -r/var/www/svn

Vi命令:按i 进入插入模式,修改完后,按ESC进入命令模式,按wq 保存并退出

开机启动

编辑 vi /etc/rc.local 文件
在文件最后加入svnserve -d -r /opt/svndata/repos/即可

1. 拒绝访问
首先检查SVN是否配置正确,然后查看SVN端口(3690)防火墙是否开放.
# service iptables stop (停用防火墙:start 启用)
访问SVN是否正常,如果正常,说明端口(3690)没有开放.
安全考虑,启用防火墙,仅开放端口(3690)
# service iptables start
# /sbin/iptables -I INPUT -p tcp --dport 3690 -j  ACCEPT (添加到指定行数)

2. #/sbin/iptables -A INPUT -p tcp --dport 3690 -j  ACCEPT (添加到末尾)
# /etc/rc.d/init.d/iptables save (保存)
# /etc/init.d/iptables status (查看打开端口)
或者
# vi /etc/sysconfig/iptables
添加:
-A OUTPUT -p tcp --dport 3690 -j ACCEPT

# useradd svn
# passwd svn
根据提示,为用户svn设置密码(svn123456@)
允许用户svn访问版本库:
# chown -R svn:svn  /var/www/svn

# chmod +x post-commit

3、配置项目仓库的钩子配置。
可以把钩子看成是WEB项目与SVN项目仓库之间的一个关联。通过向svn项目仓库提交脚本代码,利用钩子shell脚本可以自动向web项目中将脚本文件更新过去。

进入SVN项目仓库钩子所在目录,shell命令:

cd /var/www/svn/deallol/hooks/

然后执行如下复制命令:

cppost-commit.tmpl post-commit

然后编辑post-commitshell脚本,shell命令如下:

vipost-commit

将里面的所有代码注释掉,然后输入如下代码:

svncleanup

svnup /home/ftp/1520/deallol_com-20120919-VHr/deallol.com/  --username "mali" --password"123456"

这个地方需要注意,我们先进入到wwwroot目录下进行SVN清理(cleanup),消除一些隐患。然后再执行将 svn wwwroot项目创建里面的代码同步更新到web项目目录/data0/htdocs/wwwroot/中去。这里的账号wwwroot和密码 123456是我们创建SVN wwwroot项目仓库的时候指定的。

这个时候,我们去提交一个文件到svn,这时会发现在/data0/htdocs/wwwroot/目录下同步更新过来了。

如果没有反应,会有两个地方可能出错:
1)配置文件与路径写得不对,可以直接通过手工方式去执行post-commit看看有没有报错。
2)权限不对。即/data0/htdocs/wwwroot权限是否足以满足脚本的读写。

这种方式在如今的项目开发中非常的常见,在过去的几年中我在开发中遇到的也基本上是这种方式。所以,非常有必要掌握它,以备不时之需。

cd /home/ftp/1520/deallol_com-20120919-VHr/deallol.com/

要先svncheckout  svn://204.12.235.124/deallol  --username "deallol" --password"123456"


原文来自:CENTOS安装SVN http://www.redyun.net/technology/17.html

红云案例Case