Chinaunix首页 | 论坛 | 博客
  • 博客访问: 271911
  • 博文数量: 188
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -30
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-29 11:17
文章分类
文章存档

2013年(8)

2012年(5)

2011年(13)

2010年(26)

2009年(63)

2008年(20)

2007年(32)

2006年(21)

分类: LINUX

2011-08-25 11:59:48

                           

一、      目标:

              Liunx下安装SVN,集成svnmangeer或使用AD验证账号

二、      软件环境:

              Centos 5.4 64位)、mysql 5.5.12Apache 2.2.18php 5.3.6

Subversion 1.6.16subversion-deps-1.6.6  Svnadmin 1.08 Websvn-2.3.2

        

三、      安装步骤:

(一)     首先安装LAMP环境:

1.  tar zxvf  httpd-2.2.18.tar.gz

2.  cd  httpd-2.2.18

3.  ./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-dav-fs --enable-ldap --enable-authnz-ldap --with-included-apr --with-ldap --with-ldap-include=/usr/lib64/evolution-openldap/include --with-ldap-lib=/usr/lib64 --enable-mods-shared=all  --enable-maintainer-mode                                              

4、  make

5.       make install

6.  /usr/local/apache/bin/apachectl start    #启动apache

7.  访问, “It works!”

注意:一定要加上--enable-mods-shared=all

          Mysqlphp 的安装比较简单,在此就不描述



(二)     Subversion 安装:

yum install expat-devel

tar zxvf subversion-1.6.6.tar.gz

tar zxvf subversion-deps-1.6.6.tar.gz

cd  subversion-1.6.6

./autogen.sh

./configure  --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apache/bin/apr-1-config --with-apr-util=/usr/local/apache/bin/apu-1-config

make 

make install

注意:

先执行./autogen.sh;

编译过程中可能会出现 configure: error: Subversion requires SQLite,请解压subversion-deps再次进行安装

 

(三)     检查SVN安装配置

 

1、查看/usr/local/apache/conf/httpd.conf:

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so   //有这两个模块则svn安装是正确的,若是带#注释的就把#删掉

LoadModule dav_lock_module modules/mod_dav_lock.so

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

LoadModule ldap_module modules/mod_ldap.so

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

去掉下面一行的注释:

Include conf/extra/httpd-dav.conf

2、编辑conf/extra/httpd-dav.conf,添加如下内容:


 ###以下是基本用户验证###

       Dav svn

       SVNParentPath /data/svn

       AuthzSVNAccessFile /data/authz

       AuthType Basic

       AuthName "SVN Server"

       AuthUserFile /usr/local/apache/conf/.htpasswd

       Require valid-user

 

注意一定要确保有LoadModule ldap_module modules/mod_ldap.soLoadModule authnz_ldap_module modules/mod_authnz_ldap.so否则会在AD验证的时候,你就有苦头吃了,呵呵,我就是鲜活的例子

 

3. Subversion的配置:

3.1、在/data下创建authz文件,内容如下

[groups]

admin = chang, test

develop = chang

 

[proj1:/]

chang = rw

 

[proj3:/]

chang = rw

@admin = rw

保存退出。

3.2、设置test的密码

执行/usr/local/apache/bin/htpasswd -c /usr/local/apache/conf/.htpasswd test 12345678

这样就会在/data/svn下创建.htpasswd文件,内容如下:

test:$apr1$di243xxS$sh.l1B4RyJN3RXgs6Nk0q0

3.3、创建proj1库:

mkdir /data/svn       ; 这个目录将作为svn的版本库的总(父)目录使用               

svnadmin create /data/svn/proj1

(四)     测试SVN

 

1、启动Apache/usr/local/apache/bin/apachectl start

2、访问,输入用户名密码后可以访问

 

配置AD验证的apache配置:

编辑/usr/local/apache/conf/extra/httpd-dav.conf

###以下是基于LDAP用户验证###

DAV svn

SVNParentPath /data/svn

SVNListParentPath on

AuthzSVNAccessFile /data/authz

AuthType Basic

AuthName "LDAP"

AuthBasicProvider ldap

AuthzLDAPAuthoritative off

####可以参考文件里的adsi_edit来查看

AuthLDAPURL "ldap://your.domain:389/DC=your,DC=domain?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "CN=ldapuser,CN=Users,DC=your,DC=domain"
AuthLDAPBindPassword cyz123

 Require valid-user

(五)    Svnmanager安装配置

 

1.安装VersionControl_SVN

pear install VersionControl_SVN-0.3.3                        

VersionControl_SVN这个软件是svnmanager需要用到的,必须安装

2.安装svnmanager

tar zxvf svnmanager-1.08.tar.gz

cp -r svnmanager-1.08 /usr/local/apache/htdocs/svnmanager                 //把解压出来的文件复制到apache的站点根目录htdocs

cd /usr/local/apache/htdocs/svnmanager

cp config.php.linux config.php                                                                    //把配置文件重命名一下

编辑config.php,修改以下几项内容:

//Shell command's
$htpassword_cmd                         =       "/usr/local/apache/bin/htpasswd";          //
告诉svnmanager apache的密码生成执行文件的位置
$svn_cmd                                        =       "/usr/local/bin/svn";                           //
告诉svnmanager svn命令的执行目录
$svnadmin_cmd                           =       "/usr/local/bin/svnadmin";                   //
告诉svnmanager svnadmin命令的执行目录

//Subversion locations
$svn_config_dir                         =       "/data/svn";                                                      //
告诉svnmanager svn的配置目录,通常指到版本库父目录或者版本库目录即可
$svn_repos_loc                          =       "/data/svn";                                                     //
告诉svnmanager svn的版本库父目录在哪里,这个跟上面那个configdir我也搞不清楚到底有什么区别,我一般就是指到版本库父目录就没问题,上面的configdir要是注释掉则会报错
$svn_passwd_file                        =       "//usr/local/apache/conf/.htpasswd";               //
告诉svnmanager svn的账户密码文件的位置
$svn_access_file                        =       "/data/authz";                 //
告诉svnmanager svn的权限控制文件的位置

$dsn                                    =       "mysql://root:root123@localhost/svn";        //指定mysql连接的信息,这行要注意原文可能是mysqli://多数情况下都需要改成mysql://,有时候不改可能会导致连不上mysql,最后的svnmansvnmanager将要使用的数据库,会在后面创建。

$admin_name                                             =       "admin";                                         //本行和下面一行指定svnmanager首次登陆的初始账号和密码,这两行就不需要改了
$admin_temp_password                    =       "admin";
保存退出

3.创建svnmanager使用的数据库

/usr/local/mysql/bin/mysql -u root -p

mysql>create database svn;                                                                               //刚才在svnmanager的配置文件config.php里面指定的mysql连接信息的那个库就是这个。

mysql>exit

4 .测试svnmanager安装是否成功

访问

默认login信息是admin/admin注册一个新的账户后admin账户就会被屏蔽掉了,这样用新用户登录就会出现管理svn的诸多选项,以后就用这个新账户管理svn就可以了,创建版本库,设置账户,设置权限,导入导出,功能还是可以的。

如果不是本机访问,会有权限问题,用svnmanager所在主机的ip访问:

 用户名密码为 admin/admin

 

(六)     websvn安装配置

1.       安装配置

  [root@server repos]# tar xvfz websvn-2.3.2.tar.gz
  [root@server repos]# mv websvn-2.3.2 websvn
  [root@server repos]# cd websvn/include
  [root@server include]# cp distconfig.php config.php
 
 ###编辑config.php###
  [root@server include]# vi config.php
// $config->parentPath('Path/to/parent (e.g. c:\\svn)');

Change to :

$config->parentPath('/data/svn');

2.  访问地址:

 

 

 

参考文档 http://blog.subversion.org.cn/?p=109



阅读(2299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~