趁着这波比较闲的时候来划一波水,想起本身那都快生会的腾讯云服务器 到如今还不能经过版本控制系统上传文件,因而趁这波功夫在服务器上安装个svn来管理代码。php
首先就简单的介绍一波 svn :linux
首先svn不一样于GIT它是集中式的,即只有一条主线并无分支,Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变更。 这样你就能够把档案恢复到旧的版本, 或是浏览文件的变更历史。(来自百度)web
他的经常使用命令有shell
Commit(提交): 当你已经修改了代码,你就须要Commit到线上仓库apache
Update (更新): 当你好久没更新代码后,使用update更新下 你的打码就会与线上同步vim
哦豁,差点跑题了,这里我要写的是在服务器上安装svn,好吧 ,下面咱们就进入正题了 ,下面的步骤我就当咱们已经配置好服务器环境了 (在这里我是基于 CentOS 6.8 64位 php + apache搭建的服务器环境)安全
你能够用xshell 操做linux系统 这里我是用腾讯云自带linux登陆,登陆linux实例操做的服务器
1. 首先咱们在全局输入 yum -y install subversion (安装svn)svn
2. 安装成功后咱们就开始配置svnpost
2.1 首先创建一个线上的版本库
使用 mkdir /svn (这里我在根目录上创建一个svn目录)
2.2 使用 svnserve -d -r /svn (启动svn服务 其中svn是目录位置)
svnserve -d -r 目录 --listen-port 端口号 其中端口号能够省略(不填默认3690)
2.3 而后在创建一个版本库 svnadmin create /svn/www
2.4 配置容许用户rsync访问
使用 cd /svn/www/conf 找到conf文件
经过 vi svnserve.conf 进入配置编辑(将箭头指向的位置注释解了,且修改的文件前面不能有空格,不然启动svn server出错)
2.5 保存完上面步骤后 再使用vi authz配置用户权限以及那些用户可使用
2.6 保存完上面步骤后 再使用vi passwd配置用户上传下载密码
2.7 使用 svn checkout svn://IP地址/svn所在的文件夹例如上面的www --username=配置的用户名
2019/08/13-----------------补充----------------------------
checkout的时候出现 svn: Can't connect to host '123.x'x'x'x.xxxx.180': Connection timed out 没法响应 可能缘由有
1.检查各项配置文件是否有空格存在 ------这个问题出现的可能比较少
2.服务器防火墙拦截了3690端口这是须要配置
进入 vi /etc/sysconfig/iptables 编辑
在文件内加上一条容许3690端口经过的代码
最后使用 service iptables restart 重启防火墙
3.云服务器设置了上安全组 这事须要在阿里/腾讯云平台安全组面板出口处添加规则 让TCP:3690经过便可(最好入口处也添加相同规则)
-------------------------------补充----------------------------
2.8 如今你能够试试下载文件到桌面(这里还没用 将svn 与web项目挂起钩子 全部拉下来的文件是空的,这里我使用svn小乌龟下拉的 svn://ipdi地址/文件目录例如www)
2.9 将svn 与web项目关联起来就是钩子(首先须要进入svn 库下的 hooks文件夹)
例如个人svn库是在 --- /svn/www/hooks
hooks文件夹下有现成的配置模板咱们使用以下语句 copy一份至配置文件便可
cp post-commit.tmpl post-commit
复制建立文件夹后开启 755权限(可自行找度娘)
sudo chmod -R 755 post-commit (受权语句)
以后vim post-commit进入文件以下配置
以上就是svn的配置以及挂钩过程 ,以后你能够测试下 使用 svn co svn://IP/www --username jzq --password 密码 查看到有些什么文件上传了上来