企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
cenos7 安装SVN 并与web目录同步 * * * * * **搭建svn环境并创建仓库:** 1、安装Subversion: ~~~ yum install subversion ~~~ 2、检测是否安装成功(查看svn版本号) ~~~ svnserve --version ~~~ 3、创建版本库 ~~~ //先建目录 mkdir /svn(仓库目录,自己定) cd /svn //创建版本库 svnadmin create /svn/project(project为项目名称) cd project //会看到自动生成的版本库文件 conf db format hooks locks README.txt ~~~ 至此,svn环境及项目仓库创建完成 * * * * * **创建用户组及用户:** 1、 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。 2.首先增加此项目svn用户 `vi password` ![](https://box.kancloud.cn/2016-08-26_57bfe235464af.png) `:wq #保存并退出` 3.修改权限配置文件 `vi authz` ![](https://box.kancloud.cn/2016-08-26_57bfe23563f2b.png) `:wq #保存并退出` 4.配置SVN服务综合配置文件svnserve.conf `vi svnserve.conf` ~~~ //找到以下配置项,将前面的#号去掉,然后做相应的配置 anon-access = none //匿名用户访问权限:无 auth-access = write //普通用户访问权限:读、写 password-db = passwd //密码文件 authz-db = authz //权限配置文件 realm = /svn/project //版本库所在位置 ~~~ 注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错 5.启动svn服务: ~~~ svnserve -d -r /svn ~~~ 如果提示: ~~~ svnserve: E000098: Can't bind server socket: Address already in use ~~~ 证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务 ~~~ //查看svn服务详情 ps aux | grep svn //将svn服务强制停止 其中790为svn服务的ID号,-9是kill的参数 kill -9 790 ~~~ 再运行 svnserve -d -r /svn,进行启动服务 6、测试服务器: ~~~ //我们在web目录测试(/home/www) cd /www/web svn co svn://localhost/project ~~~ 如果提示:Checked out revision 0. 表示checkout成功 * * * * * **实现svn更新自动同步到web目录:** 1、在web目录中checkout版本库 ~~~ cd /www/web svn co svn://localhost/project ~~~ 2.进入/svn/project/hooks下,建立post-commit文件: ~~~ cd /svn/project/hooks vi post-commit //在该文件里添加如下代码,保存 #!/bin/sh #设定环境变量,如果没有设定可能会出现update报错 #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK export LANG=zh_CN.utf8 SVN_PATH=/usr/bin/svn //这里不用改 WEB_PATH=/www/web/project //web目录,如果你的不同,可以改 //这里的用户随便一个就好 $SVN_PATH update $WEB_PATH --username 'ggy' --password 'ggy' --no-auth-cache ~~~ 保存退出。 修改post-commit用户为www目录用户: 给post-commit 执行权限: ~~~ chown www:www post-commit chmod 755 post-commit ~~~ * * * * * 启动svn服务: ~~~ svnserve -d -r /svn ~~~ * * * * * 查看svn服务详情 `ps aux | grep svn` 将svn服务强制停止 其中790为svn服务的ID号,-9是kill的参数 `kill -9 790`