记得在大学期间,使用过SVN功能,当时觉得很不错,但是慢慢的接触了FTP之后很久没涉及到svn服务了,今天刚刚在新项目上需要部署新环境,还需要在linux搭建svn服务,其实安装完宝塔我的第一反应是去软件商城搜索svn,别说还真有,只是收费,抱着学习的态度打算在宝塔linux面板上手动安装svn服务,为防止后期还会涉及重新搭建svn,所以记录下此次的安装过程。
宝塔安装不赘述了,不会的参考以往的教程,此处省略几百字,安装宝塔,部署环境之后,我们使用SecureCRT或者宝塔面板的终端命令都可以,手动安装svn控制软件。
第一步:
通过yum命令安装svnserve
yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行,如图:
第二步:
建立版本库目录,命令如下:(目录可自拟)
mkdir /www/svndata
在svn版本库目录下启动svn,命令如下:
svnserve -d -r /www/svndata
如果命令完成后您的服务器显示“svnserve: E000098: Can't bind server socket: Address already in use”应该是启用了,暂时可以不理会,然后我们再去创建版本库。
创建一个新的版本库baseData,命令如下:
svnadmin create /www/svndata/baseData
安装和部署完成后,我们需要配置相关权限及账号密码,我们先配置svn访问密码,在/www/svndata/baseData/conf/目录下 找到 password 文件添加访问账号密码:
# 用户名 = 密码
talklee = talklee.com
账号密码设置完成后我们需要对配置文件设置权限:
在/www/svndata/baseData/conf/目录下找到,svnserve.conf 文件,添加访问权限:
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
到此,配置已经全部完成,账号信息已经添加成功 更改 svnserver.conf 时需要重启SVN服务才生效,更改authz,passwd文件时则不需要重启服务,
第四步同步库文件:
方法有两种,一种敲代码,不建议这种,我第一次安装这个没有意思,仅供参考吧。
方法一:
svn checkout svn://IP地址/baseData /www/wwwroot/165933.com
把baseData文件同步到对应的网站目录,如图,指定之后文件的内容也将同步。
方法二(建议使用此方案):
在 /www/svndata/baseData/hooks/ 目录下新建 post-commit 文件(空白文件,没有后缀)用于将svn中的文件同步到系统运行目录下,代码如下:
#!/bin/sh
SVN=/usr/bin/svn
WEB=/www/wwwroot/165933.com
export LANG=en_US.UTF-8
$SVN update $WEB --username talklee --password talklee.com
WEB指向网站目录即可,这个是自己的不要照搬,粘贴修改代码之后保存,如图:
顺手把svn重启命令附上:
查看svn的进程,筛选svn的进程命令:
ps -ef|grep svn
杀死主进程,杀死进程的命令用
kill -9 进程id
如图ID是3280,就使用 kill -9 3280 ,每个人程序不一样所以id也是不一样的,不要直接使用我这个,重新启动svn,命令:
svnserve -d -r /www/svndata
目录参考您的svn目录,参考教程第一步,还是看不懂就看看图吧,差不多是这个意思,第八行目录错了,别照着敲上去。
服务器端准备完成,我们使用SVN软件,链接测试,svn地址:svn://ip地址/baseData
链接完成后,随便新建了文件,然后右键菜单选择更新,会弹出提示框,输入之前设置的账号密码:
PS:记得在防火墙开放SVN默认端口号:3690
上传完成查看网站根目录,刷新如图:
整理再说下,本地上传的文件可以的网站目录看见,但是网站目录现有的文件,无法在本地SVN文件夹中看到,如果想要同步,把服务器文件删除,在本地SVN文件夹中添加,然后更新即可达成同步的效果,好了,太折磨人了,我估计同步文件的命令貌似可以省略,直接新建文件即可,但是未测试,等后期安装的时候看看是否可行。
另外因为本地测试项目所需给了文件夹一个777权限,你们大可不必,这个权限风险太大,要慎重。教程写完了,脑细胞死了一大堆啊,太难了,有问题可以留言反馈吧,反正我也解决不了,我去喝杯咖啡,歇会,另外此次安装仅限于在宝塔linux面板安装,其他系统未测试。
原文地址:https://www.talklee.com/blog/600.html