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

感觉再不用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服务器上会自动同步!

时间: 2024-10-10 11:58:33

svn服务器配置以及自动同步到web服务器的相关文章

ubuntu安装svn配置svn以及提交svn之后,如果自动同步到web站点

我知道网上已经有很多很多的攻略了,但是这是我自己实验成功之后的经验,希望和广大程序员们有所共鸣. ubuntu 安装 svn 就十分的 简单了 一条命名 等待安装成功即可 安装服务 sudo apt-get install subversion 然后选择合适的位置创建自己的仓库,位置自己选,做好在home下面 sudo svnadmin create /home/svn/960trade 然后配置创建仓库下面的文件,就是造登陆用户找到conf文件夹下面的passwd文件打开 管他原先是什么呢,全

Linux中svn提交文件后自动同步更新到网站目录

 下面来为各位介绍Linux中svn提交文件后自动同步更新到网站目录希望文章对各位有帮助.     有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动同步代码文件到远程服务器的网站目录下,而不必手动上传了. 首先,在网站目录下checkout代码,例如我的目录是/data/www/test svn co https://127.0.0.1/test/trunk/ /data/www/test/ 注意,这是因为有时我会在服务器上直接修改代

web服务器集群(多台web服务器)session同步、共享的3种解决方法_Linux

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态.所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一.利用数据库同步session 在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上

WINDOWS下搭建SVN服务器端的步骤分享(Subversion)_win服务器

1.获取svn程序 2.安装 Subversion(以下简称SVN)的服务器端和客户端.下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\subversion .客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启. 3.先建立空目录 E:\svn\repos1 ,注意一定是要空的.然后在 repos1 文件夹上"右键->TortoiseSVN->Create Repository here...",然后可以选择版

CssGaga教程:自动同步文件和哀悼日网站一键变灰

文章简介:CssGaga – 自动同步文件,哀悼日网站一键变灰. CssGaga – 自动同步文件 支持同步的文件类型css/jpg/png/gif/cur/ico 自动登录同步服务器 自动登录脚本放置在autorun目录中注:CssGaga启动时即自动登录服务器 同步文件并生成提单文件列表 须配置本地路径与目的路径的对应关系 <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qz

svn 自动提交java web 项目到tomcat服务器

问题描述 svn 自动提交java web 项目到tomcat服务器 如配置svn提交后自动将javaweb项目更行到自动tomcat服务器中, 情节是这样:团队开发使用svn 在现阶段测试项目中不同的开发人员使用的tomcat服务器,这样造成一些数据不是同步的,现在想配置下让团队开发使用用一个tomcat服务器,这样所操作都是同步的.就想到使用svn自动提交 或者MyEclipse远程使用tomcat 有哪个大神会配置呢? 解决方案 [转]java web项目改名之后tomcat服务器项目自动

从svn服务器自动同步到另一台服务器

需求场景 A commit B post-commit C (workstation) --------------> (svn server) ---------------------> (major site) (开发机) (线上站点) 开发机为A,有svn服务器B,以及线上站点所在服务器C.因为B硬盘不够等原因导致线上网站放在C上,不和svn服务器放在同一台机器B上. 现在,希望开发机A执行commit代码后,svn服务器B上自动同步代码到C服务器,使得线上网站自动更新. 我的方案 大

linux中SVN钩子post-commit和rsync实现自动同步数据

我们通过之前文章<SVN钩子简介和常用钩子说明>已经知道 ,SVN钩子实际就是一些shell脚本.今天我们就通过post-commit钩子来实现下svn数据更新,借助rsync实现自动同步数据. 以我们之前创建的版本库/home/svndata/21yunweinew为例说明. 我们创建一个网站源码目录放置我们的程序,实际生产环境中可以是已经存在的web源码目录,比如/home/webdata/21yunweinew. 之前我们同步数据会是通过下载或更新命令来实现: svn co svn://

Web服务器.svn隐藏文件夹漏洞利用、修复和杜绝

说明: SVN(subversion)是源代码版本管理软件, 在SVN的使用中, 会自动生成一个名为.svn的隐藏文件夹, 其中包含重要的源代码信息. 如果在发布代码时,直接复制代码文件夹到Web服务器, 同时.svn隐藏文件夹也被上传到程序根目录, 可以利用.svn/entries文件,获取到服务器源码.svn服务器账号密码等信息. 一.此隐藏文件夹是怎么来的? 从svn获取发布版本时,没有正确使用svn导出功能导致! 具体细节,乌云上面有篇文章,可以参考. 二.黑客是如何利用svn隐藏文件漏