开发者社区> lovedan> 正文

svn服务器配置以及自动同步到web服务器

简介: 感觉再不用svn就真的老了。 安装 yum install subversion 新建repo mkdir -p /opt/svn/myrepo svnadmin create /opt/svn/myrepo 修改repo的配置文件 vim /opt/svn/myrepo/conf/svnserve.
+关注继续查看

感觉再不用svn就真的老了。

安装

yum install subversion

新建repo

mkdir -p /opt/svn/myrepo
svnadmin create /opt/svn/myrepo

修改repo的配置文件

vim /opt/svn/myrepo/conf/svnserve.conf

内容修改为:

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.apache.org/ for more information.

[general]
### The anon-access and auth-access options control access to the
### repository for unauthenticated (a.k.a. anonymous) users and
### authenticated users, respectively.
### Valid values are "write", "read", and "none".
### Setting the value to "none" prohibits both reading and writing;
### "read" allows read-only access, and "write" allows complete 
### read/write access to the repository.
### The sample settings below are the defaults and specify that anonymous
### users have read-only access to the repository, while authenticated
### users have read and write access to the repository.
anon-access = read
auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
realm = myrepo   ##!!要和你前面的repo名字一致
### The force-username-case option causes svnserve to case-normalize
### usernames before comparing them against the authorization rules in the
### authz-db file configured above.  Valid values are "upper" (to upper-
### case the usernames), "lower" (to lowercase the usernames), and
### "none" (to compare usernames as-is without case conversion, which
### is the default behavior).
# force-username-case = none

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256

添加用户

vim /opt/svn/project/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
chris = my_password

修改用户访问策略

vim /opt/svn/project/conf/authz
[groups]
repositories = chris
[/]
@repositories = rw
chris = rw

启动和关闭svn服务

svnserve -d -r /opt/svn/repositories
killall svnserve  

注意 如果开启了防火墙,记得放行相应端口

同步到web服务器

假设web服务器中,本项目myrepo对应/var/www/html/mall目录.
要先到web服务器中项目目录下svn checkout:

cd /var/www/html/mall
svn check svn://218.244.143.208

然后配置/opt/svn/myrepo/hooks/post-commit内容为:

#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
export LANG=zh_CN.UTF-8

REPOS="$1"
REV="$2"

SVN_PATH=/usr/bin/svn
WEB_PATH=/var/www/html/mall
LOG_PATH=/tmp/svn_update.log
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update --username chris --password pipe42 $WEB_PATH --no-auth-cache >> $LOG_PATH
chown -R apache:apache $WEB_PATH

并注意修改post-commit文件权限:

chmod +x post-commit
chown apache:apache post-commit

好了,大功告成,现在在开发机上用svn客户端软件,把repo们checkout到本地,然后add和commit后,web服务器上会自动同步!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【服务器】使用Nodejs搭建HTTP web服务器
【服务器】使用Nodejs搭建HTTP web服务器
12 0
【服务器】利用树莓派搭建 web 服务器-无需公网IP
【服务器】利用树莓派搭建 web 服务器-无需公网IP
13 0
重识Nginx - 06 搭建静态资源Web服务器(alias VS root)
重识Nginx - 06 搭建静态资源Web服务器(alias VS root)
18 0
Web服务器TomCat快速入门(从安装到部署)
Web服务器TomCat快速入门(从安装到部署)
20 0
[powershell运维] Web 服务器日志依日期归档
本文记录了一个以 Jboss 服务器日志归档的 powershell 示范项目。该项目只需要略加修改,即可用于所有类似需要归档日志的场景。
14 0
比 Nginx 性能更强的下一代 Web 服务器
比 Nginx 性能更强的下一代 Web 服务器
73 0
在外web浏览器远程访问jupyter notebook服务器【内网穿透】
在外web浏览器远程访问jupyter notebook服务器【内网穿透】
40 0
还能把浏览器当作 Web 服务器?骚操作,学废了~
什么?还能把浏览器当作 Web 服务器? 闲话少说,直接干货! 整体思路:PWA 中用于缓存文件的 server workers 可以动态生成新文件,并通过 fetch 事件,将它们发送至浏览器!
25 0
Web 服务器启用 connection - keep-alive 的一些前置条件
Web 服务器启用 connection - keep-alive 的一些前置条件
22 0
为什么需要Web 服务器?底层原理是什么?
为什么需要Web 服务器?底层原理是什么?
34 0
+关注
lovedan
计算机科学与技术硕士,专注计算机视觉(目标检测、深度学习),关注Linux环境下各算法配置。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
函数计算事件驱动的无服务器计算服务
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多