linux安装SVN和配置监听、同步网站、开启启动等

在window下面安装了svn后,可以在服务器进行版本控制、协作项目等,重点是还可以直接用GitHub提供的库地址进行svn版本控制,打算在linux服务器安装一个svn,用来同步我的代码以及版本控制。好习惯还是必要的,之前用git控制版本,可是换系统后git安装有点慢,所以打算用SVN试试,不喜欢再换成git吧。再Windows(win7-64)安装了svn后我在Ubuntu server安装一个svn。下面是在我的Ubuntu server下安装过程:

1.安装svn,我是管理员权限(su):

apt-get install subversion

2.安装后创建一个版本目录

mkdir /svn/test
svnadmin create /svn/test


3.配置svn服务器

上一步执行svnadmin后会在svn目录下面生成4个文件夹和2个文件,如下:

conf  db  format  hooks  locks  README.txt

进入到conf文件夹,里面有几个配置文件:

authz   passwd  svnserve.conf

3.1修改svnserve.conf文件

[general]
anon-access = none
auth-access =write
password-db = passwd
authz-db = authz


3.2修改passwd文件,设置用户和密码:

 [users]
 usernamea = userpwd #用户在下面讲到


        3.3  配置authz权限 
 (配置用户和配置权限)

[groups]
admin = usernamea,usernameb
[/]
usernamea = rw #读写
usernameb = r #只读权限
@admin = rw #整个用户组权限


这样就完成配置了,然后监听一下目录

svnserve -d -r /svn/test --listen-port 123456 #监听123456这个端口,需要提前从服务器放出来

-d表示守护线程后台运行,-r表示指定目录。注意:不要写成svnserve -d -r /svn/test,否则虽能启动服务,但是只是启动一个项目,假如有多个不同的项目(比如project1,project2等)启动上一个目录可以包括下面的全部项目,多方便啊。

查一下服务是否启动了:

 ps -ef |grep svnserve
 root      1908     1  0 02:29 ?        00:00:00 svnserve -d -r /svn/test
 root      1910  1778  0 02:29 pts/0    00:00:00 grep --color=auto svnserve

可以看到两个进程,那么表示运行正常了。


往往还需要进行网站内容同步,也就是hook钩子配置

进入 /svn/test/hooks 

编辑post-commit 文件(vi post-commit),填写以下内容(根据实际情况修改)

#!/bin/bash
export LANG="zh_CN.UTF-8"   #防止乱码
svn update /web/test  --username usernamea --password  userpwd #监控有更新时自动同步到/web/test 网站目录
chown www:www /web/test -R #更新后将网站目录重新分配拥有者和权限,www:www比较安全,默认是root:root

然后保存post-commit文件,赋予775可执行权限

chomd 775 post-commit


建好仓库后需要在服务端检出一下

svn checkout svn://xx.xx.xx.xxx:123456/web/test /www/web/xxx(网站目录) --username usernamea --password userpwd

4. 客户端连接(我的服务器地址172.168.128.128)

在电脑资源管理器中右键,选择SVN checkout,在弹出的窗口的Url处填写SVN服务器上版本库的访问地址,之后直接点确定。
  svn地址:svn://192.168.128.128/svn  然后输入用户名lan和密码lan123确认。
  如果没有连上,那么清理旧的数据信息。
  清除旧数据方法:右键->tortoisesvn->setting->Saved Data,都清理掉。


连接成功后在文件夹里面有一个隐藏的.svn文件夹

5. 设置开机启动svn:

编辑rc.local文件(centos是这个文件)

sudo vi /etc/rc.local


加入下面的代码

/usr/bin/svnserve -d -r /var/svn --listen-port xxxx

上面的路径记得补全了,不能直接就是svnserve,手动启动可以这么写,但是设置开机启动要写全部路径。不知道svn安装的位置可以用whereis命令查看一下,比如:

whereis svn
svn: /usr/bin/svn /usr/share/man/man1/svn.1.gz


这样就出来了。

其实想要改变位置的时候可以直接用mv移动位置即可,很方便。



查看进程

   ps aux|grep svn

 

杀死进程

  kill    xxxx   (进程号)

 重启

svnserve  -d  -r  xxxx(svn 安装路径) --listen-port [端口]


评论/留言