写在前面:
突发奇想想安装自己的svn,按照网上的教程一步一步确怎么也不成功,解决了好久,其实就是一步之遥,或是一个空格的事, 吐血的……
请依次检查下面各项
如果服务器是svnserve,检查有没有运行svnserve,有没有打开3690端口
如果服务器是apache,检查apahce是否运行,是否打开80端口
检查时可以在服务器运行netstat -na看看相应端口是否在LISTEN
2,防火墙有没有开放相应端口
3,客户端是否可以连接服务器的相应端口
使用命令telnet 服务器IP 相应端口
如:telnet 192.168.0.1 3690
在Centos下安装SVN很简单,使用yum很快就搞定。
- yum install mod_dav_svn subversion
下面主要探讨下svn的配置。
1、建立 SVN 的根目录:
- [root@vm-moodle ~]# mkdir -p /opt/svn/
2、建立一个数据仓库:
- [root@vm-moodle ~]# mkdir -p /opt/svn/edu/
- [root@vm-moodle ~]# svnadmin create opt/svn/edu/
3、修改配置文件:
- [root@vm-moodle ~]# cd /opt/svn/edu/conf/
- [root@vm-moodle conf]# ll
- 总计 24
- -rw-r--r-- 1 root root 710 10-25 09:40 authz
- -rw-r--r-- 1 root root 325 10-25 09:38 passwd
- -rw-r--r-- 1 root root 1449 10-25 09:36 svnserve.conf
- ##****************************************************************
- # 注意,下面的配置文件中的参数前面一定不能留空格,否则后果自负!
- ##****************************************************************
- [root@vm-moodle conf]# vi svnserve.conf
- [general]
- anon-access = none #不允许匿名访问
- auth-access = write #认证用户可写
- password-db = passwd #密码文件
- authz-db = authz #用户验证文件
- [root@vm-moodle conf]# vi authz
- [edu:/]
- hansy = rw
- # 给edu仓库添加一个名称为的用户,权限为可写。
- [root@vm-moodle conf]# vi passwd
- hansy = 87827192
- # 密码可以是加密密码,也可以是明文,根据前面的配置来决定
4、启动服务:
- #启动SVN 服务,并指定 SVN 的根目录:
- [root@vm-moodle ~]# svnserve -d -r /opt/svn/
- #查看服务是否正常起来:
- [root@vm-moodle ~]# netstat -tunlp | grep svn
- tcp 0 0 0.0.0.0:3690 0.0.0.0:*
- EN 3970/svnserve
- #LISTEN 监听端口3690
5、在Win上安装TortoiseSVN客户端
下载需要的Tortoise版本进行安装。因为这里的安装没有和WEB服务如Apache连接,所以在客户端访问时使用SVN协议进行。
一般如:svn://192.168.1.10/edu
输入用户名、密码即可正常访问。
一问一答:
问:安装好svn服务后在windows下用svn客户端连接不上svn服务器?
答:一般是centos中SVN的3690端口没有打开,使用下面方法
- [root@vm-moodle ~]#iptables -I INPUT -p tcp --dport 3690 -j ACCEPT #开放3690端口
- [root@vm-moodle ~]#/etc/rc.d/init.d/iptables save #保存配置,非常重要
- [root@vm-moodle ~]#/etc/init.d/iptables status # 查看是否已经成功:
问:配置基于svnserve的subversion服务器后,在客户端访问subversion版本库时出现这个错误:svnserve.conf:12: Option expected;为什么会出现这个错误呢?
答:因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件。看下面的配置文件。
- [general]
- ### These options control access to the repository for unauthenticated
- ### and authenticated users. Valid values are "write", "read",
- ### and "none". The sample settings below are the defaults.
- anon-access = read
- auth-access = write
在上面的配置文件中,anon-access是顶行的,没问题,而auth-access就存在前置空格,会导致这个错误。
要避免出现这个错误,应该在去掉这些行前的#时,也要顺手去掉前面的空格.
问:如何输入TortoiseSVN的用户名、密码?
答:很多时候,为了方便,我们在使用Tortoise时,会勾选密码输入框那里的保存验证信息。但是当我们想换一个用户登录时,却可能发现不知道怎么换用户进行登录。Tortoise的用户名密码等认证信息都是缓存在客户端文件系统的这个目录:
C:/Documents and Settings/Administrator/Application Data/Subversion/auth
删除auth下面的所有文件夹,重新连接远程服务器进行检出,对话框就会出现!