关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

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

发布时间:2013-08-01 00:00:00
 在WDCP一键安装包的基础上安装SVN及实现nginx web同步更新   一、安装   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   会出现以下认证的提示   -----------------------------------------------------------------------   注意! 你的密码,对于认证域:      只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让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完成后都会调用此文件。   本文教程摘自wdlinux论坛 ,转载请注明~

/template/Home/Zkeys/PC/Static