我是一个linux新人,同时也是一个刚刚转行做系统运维的新人(以前在ISP做网络),之前其实接触过linux,但是水平仅仅停留在能配上IP地址就行的阶段。九月份离职后,一直想找个机会转行系统运维,现在有了个机会进游戏公司做运维,但是事实上我却是网管兼运维,而且还没人带。没办法只能自己边实验边学习了。

    其实我不是一个自学能力很强的人,我甚至不能塌不下心来好好学习,就算当初在ISP干的时候,那些知识基本也都是在工作中学到的。基于这点,学linux我选择了在实验中慢慢学习基础知识,感觉自己要是从文件系统开始看的话,半年也学不进去多少。

     闲话不说,这次做SVN的实验,是因为公司现在用的是WIN下的,以前根本没接触过SVN这东西,而且直到现在我都很讨厌这玩意。身边没有什么其他资源,就只能先玩玩SVN了。

      

 

系统:CentOS  6.2 x64

软件:SVN1.6

安装SVN(我选择的是SVN方式,暂时不写HTTP方式)

sudo yum install subversion   #安装SVN,我选择了YUM方式,其实新人应该用源码包,这样能练手

 

sudo /usr/sbin/useradd svn   #创建SVN用户,用于建立、修改和运行SVN

sudo passwd svn

su svn

cd

mkdir repositories               #建立SVN目录,他是根目录!

cd repositories                  

svnadmin create myproject   #创建SVN仓库,他才是项目目录!

 

进入仓库目录后可以ls看到一个conf文件夹,进去之后会有三个配置文件。

svnserve.conf  passwd    authz

 

svnserve.conf    SVN配置文件

 

把地下这四行注释去掉,并且要定格,必须的!

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

 

 

[users]

john = foobar123   #这就不用说了,用户名  =   密码

 

 

这东西好像写不写都行,写了就有细目录权限,不写就没有

[myproject:/]   #目录,这点一定要写清楚是根目录还是项目目录。我就是因为这块没写好,才导致费了两天才弄好svn

john = rw        #用户权限RW都懂什么意思吧。也能写组但是前面要加@

启动SVN

svnserve -d #后台运行 -r #目录 /home/svn/repositories/myproject/ --listen-host 127.0.0.1 #监听的IP,不过我感觉没用 --listen-port 3690  #默认是3690可以不加,改默认端口就得用了,适合多SVN时候用

至此,一个SVN应该就算搭建完了,但是很多时候事与愿违,我就是个例子。

 

防火墙设置!一定要记着看看,我当时装系统的时候明明记着关了防火墙,可是怎么装完之后怎么也连不上,只有本地可以连上SVN。telnet也不行,在网上一通搜IPtable的语法,照猫画虎的把3690加上这才能连上SVN。

不过这样倒也好,一是学会了IPtable的基本语法,二是熟练了一下服务器的开关重启操作

 

-A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT  #这是语法加进iptable就行了,但是不知道为什么我加-i  p1p4(我网卡的名字)就不行,索性我后来就删了。

 

这样,SVN就应该没问题了。

 几个注意点:

 1:一定要分清根目录和项目目录,这两个分不清会直接导致验证失败

 2:启动SVN之后,从客户端telnet一下端口,连不上SVN又没报错,肯定就是服务端防火墙或者内网网络设备的问题,仔细查查

authz       目录权限文件

passwd     用户验证文件