前些天已把SVN服务器搭建好了,很多小伙伴们。会有这样的需求。就是写好的网站代码要及时通过SVN提交到服务器的nginx 或apache下可以访问,等……
前传:
服务器系统RHEL7.3 , 服务器IP地址:192.168.1.2 , 开放防火墙 3690
一、安装#yum install subversion yum安装SVN#mkdir -p /opt/svn/repos 创建svn目录#svnadmin create /opt/svn/repos 生成SVN配置文件
二、编辑配置文件#vim /opt/svn/repos/conf/passwd 添加用户和密码
[users]
niewu= 123 #用户名=密码
#vim /opt/svn/repos/conf/authz 给用户权限
[/]
niewu= rw 给niewu读写权限
#vim /opt/svn/repos/conf/svnserve.conf #去掉前下面前几个注释
anon-access = none # 如果不改成none windows下的SVN没有更新记录
auth-access = write # 使授权用户有写权限
password-db = passwd #帐号和密码配置文件
authz-db = authz # 访问控制文件
realm = /opt/svn/repos # 认证命名空间。
三、配置完之后启动SVN#svnserve -d -r /opt/svn/repos
四、查看服务(说明服务已启动成功)[root@www ~]# netstat -ntlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 143241/svnserve
[root@www ~]#
五、测试SVN是否能检出#cd /www 进入要更新的目录
#svn co svn://192.168.1.2 ./ 会提示输入用户名和密码
六、创建钩子文件#vim /opt/svn/repos/hooks/post-commit post-commit这个文件是SVN提交的时候会触发#!/bin/shexport LC_ALL=zh_CN.UTF-8 #解决SVN编码问题/usr/bin/svn up --username "niewu" --password "123" /wwwchmod 775 /www -Rchown www.www /www -R#chmod 777 /opt/svn/repos/hooks/post-commit 设置钩子权限(必须要改变钩子文件权限。不然是不会执行的。实际是一个Shell脚本)/opt/svn/repos/hooks/post-commit 可以单独运行这脚本
七、最后让svn和svn钩子 随系统启动#vim /etc/rc.d/rc.localsvnserve -d -r /opt/svn/repos
至此:SVN钩子已搭建成功