2022
我们一起努力

云服务器搭建svn服务器,linuxsvn服务器搭建和配置

简介

这个需求是我们公司自己的需求,我想也是大多使用svn公司的需求,使用git的就暂且绕过,有人肯定说咋还是用svn,现在都是git了,这个我不反驳,2个我们都在用,但是选择适合的才是最重要的,下面让小编我来为大家详细讲解如何linux搭建SVN服务器,并且使用本地提交代码,服务器端自动同步,省去部署的烦恼,比如现在的vue工程项目,本地打包后,svn提交直接就部署到服务器端了,这样是不是省去了不必要的工作量呢,提升我们的工作效率,方法是我们自己总结的,已经使用很长时间了,大家按照我们的步骤,绝对可以搭建起来,废话不多说,一起来看步骤把:

svn服务器的搭建

ssh登录linux服务器

ssh root@你的服务器ip(ps:接着会让你输入密码,密码不显示,直接输完 enter 就行了)

1.安装svn服务器端

yum install subversion

2.进入目录,准备创建svn目录

cd /usr/local/ 

3.创建一个svn目录

mkdir svn

4.修改目录权限为777

chmod -R 777 svn

5.创建一个svn版本仓库first(first可以随便起名字)

ls create /usr/local/svn/first 

6.进入first版本仓库下的配置文件目录

cd first/conf

7.编辑svnserve.conf配置文件

vim svnserve.conf (基本常识:vim 编辑文件 进如按E编辑 编辑好后 按esc 后:W 保存 :q退出)

//配置版本库信息和用户文件和用户密码文件的路径、版本库路径

anon-access = none //默认是只读read
auth-access = write //认证后有写入权限
password-db = passwd //帐号密码配置文件
authz-db = authz //权限配置文件
realm = first //改成自己的版本库 生效范围

8.编辑authz权限文件

vim authz

//文件,创建svn组和组用户的权限

[group] 
first = ddl,shl //创建一个first的组,并制定两个用户ddl和shl 
 
[/] //制定根目录下的权限 
@first = rw //first组用户权限为读写 
* = r //其他用户只有读权限 

9.编辑passwd权限文件

vim passwd

//创建或修改用户密码

[users] 
ddl = 123456 //用户名 = 密码 
shl = 123456 //用户名 = 密码

10.设置SVN服务开机自启动

  1. 在root目录加入svn.sh
 touch /root/svn.sh

2. 让后在svn.sh写入内容

 vim /root/svn.sh

////—-下面是写入的内容—-////

 #!/bin/bash
 /usr/bin/svnserve -d -r /znjg/svn/cnmiaosu

3. svn.sh该脚本添加可执行权限(非常重要)

	chmod +x svn.sh

4. 加入自动运行

	vim /etc/rc.d/rc.local

在打开的文本末尾添加脚本的路径:

 /root/svn.sh (按esc 后:W 保存 :q退出)

5.最后 给 /etc/rc.d/rc.local 加入执行权限,因为在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件

 chmod +x /etc/rc.d/rc.local (非常重要)

使用post-commit实现本地提交,服务器端自动同步

1.打开hooks文件夹

cd /usr/local/svn/hooks

2.复制post-commit.tmpl 文件为 post-commit

cp post-commit.tmpl post-commit

3.打开post-commit文件

vim post-commit

4.文件内容清空内容,修改为以下代码:

#!/bin/sh
export LANG=en_US.UTF-8
/usr/bin/svn update --username ddl --password 123456 /www/web/myweb

注意: /usr/bin/svn 是svn的路径,不是项目路径,应该都是一样的;

–username ddl –password 123456 svn账户和密码

/www/web/myweb 项目路径(需要实时同步的项目)

5.修改post-commit的可执行权限

chmod 755 post-commit

6.在上面我见了一个svn版本库为first,但是这只是版本库,并没有项目,那么我们需要在版本库里面新建项目(也就是建立一个文件夹)

这里推荐使用 windows 下面的 TortoiseSVN 客户端,打开版本库后右键 建立一个 《myweb》 项目文件夹,然后把所有的项目文件 拖入到 该文件夹内 上传svn服务器;

注意:为什么不推荐用linux方式上传项目到svn服务器中,因为linux上传一个个文件遍历上传,比较很麻烦,所以推荐 TortoiseSVN 客户端上传,简单方便

7.在服务器进入项目目录/www/web/myweb,checkout检出整个项目到当前目录

svn checkout svn://{您的服务器地址}:{端口号}/myweb .

//注意目录后面还有一个点

常见错误,我遇到的

  1. 255错误:post-commit没有给执行权限 或者 头部没有执行用sh执行,就是没有#!/bin/sh
  2. 提示跳过目录:服务器目录没有checkout代码,记得一定要先checkout一次,才能同步(!,每次新建项目都需要)
  3. 什么提示也没有:这种情况出现在用工具commit的时候,成功了,但是就是没有同步,建议你到linux下,使用./post-commit手动执行看报什么错误。如果乱码,请将文件内编码格式修改为GBK
  4. 提示**** is a direcitory:/usr/bin/svn你把这个搞错了,他不是一个目录,是svn的路径

需要注意的问题

1.SVN版本库起动方式,现在svn下面有 first、test 两个版本库

1: 单版本库起动 svnserve -d -r /usr/local/svnRepo/first

2:多版本库起动 svnserve -d -r /usr/local/svnRepo

2.如果使用的是阿里云服务器需要在《安全策略》中加入 3690 端口

3.如果使用的是wdcp面板或者其他免费linux面板,需要在防火墙中加入 3690 端口

常用:svn命令

lsof -i :3690 						查看svn是否启动 
ps aux |grep \'svn\' 					查找所有svn启动的进程 
kill -9 2505 						 杀死2505这个查找到的svn进程 
svnserve -d -r /usr/local/svn/first 	启动svn
netstat -anp|grep svnserve				查看一下SVN信息
svnserve --version 查看一下SVN版本
svn checkout svn://XXX.XX.XX.XXX/cmf_cnmiaosu_com . 检出数据

Mac下使用iTerm2让SSH记录远程服务器账号和密码

第一步:打开Finder,在菜单栏找到『前往』→ 『前往文件夹…』,输入:~/.ssh/ 然后回车

第二步:新建一个文件,命名为example吧,里面写入内容:

set user  服务器账号
set host 服务器IP
set password 服务器密码

spawn ssh $user@$host
expect \"*assword:*\"
send \"$password\\r\"
interact
expect eof

第三步:到官方http://www.iterm2.com/下载并打开iTerm2,菜单栏找到『Profiles』→『Open Profiles…』,打开面板上,点击右下角『Edit Profiles…』

第四步:在打开面板,左边应该是选中默认default,右边找到Command,默认应该是Login shell,选中Command,里面输入:expect ~/.ssh/example

第五步,下次打开iTerm2,是不是默认就登录上服务器了?极大提升效率。

最后:至此全部结束了,教程不易,且看且珍惜,如果您觉得好,对您有帮助,不防点个赞,收藏备用,评论下,给小编加加油,继续坚持发布经验教程;

赞(0)
文章名称:《云服务器搭建svn服务器,linuxsvn服务器搭建和配置》
文章链接:https://www.fzvps.com/107461.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!