安装SVN及实现nginx web同步更新需要在WDCP一键安装包的基础上

时间:2022-09-19 07:28:19

一、安装

1.查看是否安装cvs

rpm -qa | grep subversion

2.安装

yum install subversion

3.测试是否安装成功

/usr/bin/svnserve --version

如提示以下内容,说明已安装成功

--------------------------------------

svnserve,版本1.6.11 (r934486)

编译于Apr 11 2013,17:28:04

版权所有(C) 2000-2009 CollabNet。

Subversion 是开放源代码软件,请参阅http://subversion.tigris.org/ 站点。

此产品包含由CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。

* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

--------------------------------------------------------------

二、配置

1、新建一个目录:repos 可用于存储SVN所有文件

mkdir -p /opt/svndata/repos

注意,这里的目录(项目名称)路径可以更改,格式如下:

mkdir -p 目录路径(如:mkdir -p /www/svn/project)

2、新建一个版本仓库(使用svnadmin create 目录仓库路径与上面新建的目录要一致)

svnadmin create /opt/svndata/repos

3、修改svn版本库的配置文件

vi /opt/svndata/repos/conf/svnserve.conf

按以下格式内容修改,其中realm的值为项目名称,本例中即为repos。

[general]

anon-access = none

auth-access = write

password-db = /opt/svndata/project/conf/passwd

authz-db = /opt/svndata/project/conf/authz

realm = repos

注意:对用户配置文件的修改立即生效,不必重启svn。

4、添加用户

vi /opt/svndata/repos/conf/passwd

要添加SVN用户非常简单,只需在/opt/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。

为了测试,我添加了如下内容:

[users]

# harry = harryssecret

# sally = sallyssecret

pm = pm_pw

server_group = server_pw

client_group = client_pw

test_group = test_pw

5、修改用户访问策略

vi /opt/svndata/repos/conf/authz

记录用户的访问策略,以下是参考:

[groups]

project_p = pm

project_s = server_group

project_c = client_group

project_t = test_group

[project:/]

@project_p = rw

* =

[project:/server]

@project_p = rw

@project_s = rw

* =

[project:/client]

@project_p = rw

@project_c = rw

* =

[project:/doc]

@project_p = rw

@project_s = rw

@project_c = rw

@project_t = rw

* =

以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录。

当然,以上是比较复杂的权限控制,如果只是测试,可以简单些。建立一个用户组,把所有的用户都放到一个用户组,如下:

[groups]

admin = pm,server_group,client_group,test_group

[/]

@admin = rw

关于权限的控制,本文不详情叙述,大家可以去咨询度娘。

5、启动svn服务

svnserve -d --listen-port 3690 -r /opt/svndata/repos (以root用户在运行)

假如有多个项目同时在开发的话,可以通过不同端口可以开启多个SVN服务,使用TortoiseSVN操作时记得加上端口号。

6、测试svn服务器

进入网站根目录

cd /www/web/repos/public_html

svn co svn://127.0.0.1:3690 /www/web/repos/public_html --username pm --password pm_pw

会出现以下认证的提示

-----------------------------------------------------------------------

注意! 你的密码,对于认证域:

repos

只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?

输入“yes” 回车,因为版本仓库还没有添加任何文件,所以取出版本为0,如下:

取出版本0。

三、配置post-commit,实现自动同步svn版本库文件到web目录

为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,进入hooks目录,

cd /opt/svndata/repos/hooks

ls

可以看到有一个post-commit.tmpl文件,这是一个模板文件,复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:

cp post-commit.tmpl post-commit

chown www:www post-commit

chmod +x post-commit

这样就有了访问www目录的权限。

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.

文件内容参考以下:

vi post-commit

#!/bin/sh

export LANG=zh_CN.UTF-8

REPOS="$1"

REV="$2"

SVN_PATH=/usr/bin/svn

WEB_PATH=/web/web/repos/public_html

LOG_PATH=/tmp/svn_update.log

#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache

echo "nnn##########开始提交" `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH

echo `whoami`,$REPOS,$REV >> $LOG_PATH

$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH

chown -R www:www $WEB_PATH

说明:

1、#!/bin/sh 说明是执行shell命令/*设定环境变量,如果没有设定可能会出现update报错*/

2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。

如果你是GBK编码可能会提示:Error output could not be translated from the native locale to UTF-8

这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8

#执行更新操作

3、svn update –username 你版本库的用户名–password 用户名的密码svn://你的IP地址:端口/web/web/repos/public_html

4、chown -R www:www $WEB_PATH 更改文件夹属主为适合Web Server的

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件。本文转自站帮网HTML教程,如需转载请注明地址:http://www.zhanhelp.com/thread-297966-1-1.html

安装SVN及实现nginx web同步更新需要在WDCP一键安装包的基础上的更多相关文章

  1. Linux下一键安装包的基础上安装SVN及实现nginx web同步更新

    Linux下一键安装包的基础上安装SVN及实现nginx web同步更新 一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install sub ...

  2. centos 6.5 安装阿里云的一键安装包(nginx+php5.4+mysql5.1)

    安装阿里云提供的Linux一键安装web环境全攻略,本想着会有最复杂 ,没想到阿里云工程师提供的包没有任何限制(开始以为只能在阿里去的主机上使用).开源的精神就是好(注:我是伸手党). 环境  vmw ...

  3. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  4. lanmp v2.5一键安装包发布(包括lamp,lnmp,lnamp安装)

    lanmp一键安装包是wdlinux官网2010年开始推出的lamp,lnmp,lnamp(apache,nginx,php,mysql,zend,eAccelerator,pureftpd)应用环境 ...

  5. LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin+eAcelerator一键安装包

    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat.Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx.MySQL.PHP.phpMyA ...

  6. linux服务器WEB环境一键安装包lanmp教程之五

    在我们安装了linux服务器WEB环境一键安装包lanmp后,可能会有不少疑问还有就是使用过程中出现的问题,下面为大家总结几点比较常见的,如若还有其他疑问,可到wdlinux论坛寻找相关教程. 1.增 ...

  7. 安装lnmp一键安装包(转)

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要3GB以上硬盘剩余空间 128M以上内存,Xen的需要有SWAP,OpenVZ的另外 ...

  8. LNMP安装一键安装包

    系统需求: CentOS/Debian/Ubuntu Linux系统 需要2GB以上硬盘剩余空间 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统) VPS或服务器必须已经 ...

  9. (实例篇)LNMP 1.4一键安装包,安装教程

    http://mp.weixin.qq.com/s/l6ijKBwD6tt8jkZytWEIsw https://lnmp.org/download.html 2017-09-11 学习与分享 PHP ...

随机推荐

  1. 手机开发中的AP与BP的概念

    转自:http://blog.csdn.net/macong01/article/details/15504611 手机的AP和BP: AP:ApplicationProcessor,即应用芯片 BP ...

  2. js 上传文件预览

    1. FILE API html5提供了FIle和FileReader两个方法,可以读取文件信息并读取文件. 2. example <html> <body> <div ...

  3. Log4j XML配置

    问题描述:     Log4j  XML配置 问题解决:     (1)编写log4j.xml配置文件 注:     如上的XML文件必须以log4j.xml文件命名,否则无法读取配置文件,同样的如果 ...

  4. Linux 常用命令汇总

    1.shutdown -s 时间 如果是想马上关机就直接输入0或者now: 2.init 0 这个是运行级别关机: 3.halt 这个命令不是很好用: 4.power off 这个命令也是很好用的. ...

  5. Java-Preferences用法-入门

    Properties提供的应用程序解决方案主要存在两个问题: (1)配置文件不能放在主目录中,因为某些OS(如Win9X)没有主目录的概念: (2)没有标准的文件命名规则,存在文件名冲突的可能性. J ...

  6. PHP内写css样式

    <1>php的两种输出方式 1,echo: 2,print; 栗子: <?php echo:"你好,我的名字是LHH"; print:"你好,我的名字是 ...

  7. linux Cacti监控服务器搭建

    搭建Cacti监控服务器 部署安装环境(lamp) [root@zhuji1 ~]# yum -y install httpd [root@zhuji1 ~]# yum -y install php ...

  8. java&lowbar;ATM&lowbar;GUI

    Test 界面: import java.awt.Menu; import java.io.BufferedReader; import java.io.File; import java.io.Fi ...

  9. ubuntu18&period;04使用sudo时反应时间长

    一.查看/etc/sudoer这个文件,是否有当前用户,若无,请联系 管理员或者是通过root用户添加 二.用hostname命令查看自己的主机名 三.添加自己的主机名到/etc/hosts文件中

  10. c&sol;c&plus;&plus;动态内存分配的区别

    c中动态内存分配使用malloc和free. malloc指定需要分配的内存大小,分配成功则返回指向该内存的指针,不成功则返回空指针.返回的指针类型为void *,表示不确定指针所指内存存放的数据类型 ...