分类: LINUX
2011-08-25 11:59:48
一、 目标:
Liunx下安装SVN,集成svnmangeer或使用AD验证账号
二、 软件环境:
Centos 5.4 (64位)、mysql 5.5.12、Apache 2.2.18、php 5.3.6、
Subversion 1.6.16、subversion-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
Mysql和php 的安装比较简单,在此就不描述
(二) 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.so和LoadModule 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
//Subversion locations $dsn = "mysql://root:root123@localhost/svn"; //指定mysql连接的信息,这行要注意原文可能是mysqli://多数情况下都需要改成mysql://,有时候不改可能会导致连不上mysql,最后的svnman为svnmanager将要使用的数据库,会在后面创建。
$admin_name = "admin"; //本行和下面一行指定svnmanager首次登陆的初始账号和密码,这两行就不需要改了 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. 安装配置
Change to :
2. 访问地址:
参考文档 http://blog.subversion.org.cn/?p=109