1、yum install subversion
2、输入rpm -ql subversion查看安装位置
我们知道svn在bin目录下生成了几个二进制文件。
输入 svn --help可以查看svn的使用方法,如下图。
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件
5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
使用下面这个命令进行测试是否正常
svn list svn://10.0.0.10svn list svn://10.0.0.10
svn: E200002: Unable to connect to a repository at URL 'svn://10.0.0.10'
svn: E200002: /var/svn/svnrepos/conf/svnserve.conf:19: Option expected
以上情况是因为/var/svn/svnrepos/conf/svnserve.conf文件配置没有顶格写
svn: E220003: Unable to connect to a repository at URL 'svn://10.0.0.10'
svn: E220003: Invalid authz configuration
以上情况是authz文件没有顶格写配置
9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
10、在windows上测试()
新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN):
填写SVN的地址,如下图:
输入密码,如下图:
端口号:3690
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT #允许 3690 端口
service iptables save #保存 iptables 规则
Linux下SVN服务器自动更新文件到Web目录的方法
说明:
服务器操作系统:CentOS
服务器IP:127.0.0.1
SVN项目路径:/var/svn/svnrepos
SVN登录账号:root
SVN登录密码:root
Web站点根目录:/data/wwwroot/www.123.com
实现目的:
当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录
具体操作:
一、使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录
1. 首先导出一份svn的文件到网站目录
svn co file:///var/svn/svnrepos /data/wwwroot/www.123.com
2. 修改“提交后执行文件”post-commit.tmpl
cd /var/svn/svnrepos/hooks
mv post-commit.tmpl post-commit
chmod +x post-commit
vi post-commit
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8 #字符集,与服务器一致,可执行locale命令查看
svn update /data/wwwroot/www.123.com #更新svn
echo `date`,`whoami`,$REPOS,$REV >> /var/svn/svnrepos/hooks/svn_hook.log #记录时
间日志
chown -R root:root /data/wwwroot/www.123.com #将网站目录文件更改属主,>如果你是使用root用户更新的话
:wq! #保存退出
至此,Linux下SVN服务器自动更新文件到Web目录教程完成。
#!/bin/bash
read -p "输入svn的目录" svn_dir
#安装svn
yum install subversion
#创建svn版本库目录
mkdir -p $svn_dir
#创建版本库
svnadmin create $svn_dir
#设置账号密码,需要增加多个 直接按test格式添加
cat >>$svn_dir/conf/passwd<<EOF
test = 123456
EOF
#用户授权 等号前是组后面是用户,多个用户用逗号隔开
cat >>$svn_dir/conf/authz<<EOF
test = test
[/]
@test = rw
* =
EOF
#修改svnserve.conf配置文件
sed -i 's/# anon-access = read/anon-access = none/g' $svn_dir/conf/svnserve.conf
sed -i 's/# auth-access = write/auth-access = write/g' $svn_dir/conf/svnserve.conf
sed -i 's/# password-db = passwd/password-db = passwd/g' $svn_dir/conf/svnserve.conf
sed -i 's/# authz-db = authz/authz-db = authz/g' $svn_dir/conf/svnserve.conf
#启动svn服务
svnserve -d -r $svn_dir
#检查svn是否启动
ss -lnp|grep 3690