CentOS7 源码安装svn1.9.5及httpd配置(ldap验证/ad域验证)

环境:CentOS-7-x86_64-1611 + subversion-1.9.5

一、源码安装:

1、安装ldap:

wget ftp://gd.tuwien.ac.at/infosys/network/OpenLDAP/openldap-release/openldap-2.4.44.tgz
tar -zxv -f openldap-2.4.44.tgz
cd openldap-2.4.44/
./configure --prefix=/usr/local/ldap --disable-slapd
#--disable-slapd  ===  不需要ldap服务器 只需要lib include
make
make install

2、安装APR:

wget http://apache.fayea.com//apr/apr-1.5.2.tar.bz2
tar -jxv -f apr-1.5.2.tar.bz2
cd apr-1.5.2/
./configure --prefix=/usr/local/apr
make
make install

3、安装APR-util:

wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.bz2
tar -jxv -f apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config --with-ldap=ldap --with-ldap-include=/usr/local/ldap/include --with-ldap-lib=/usr/local/ldap/lib
#apr-util需要带上ldap功能
make
make install

4、安装pcre:

wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.bz2
tar -jxv -f pcre-8.40.tar.bz2
cd pcre-8.40/
./configure --prefix=/usr/local/pcre
make
make install

5、安装apache:

wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.25.tar.bz2
tar -jxv -f httpd-2.4.25.tar.bz2 
cd  httpd-2.4.25/
./configure --prefix=/usr/local/httpd \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr-util/bin/apu-1-config \
--with-pcre=/usr/local/pcre/bin/pcre-config \
--enable-module=mod_auth_basic \
--enable-module=mod_authnz_ldap \
--enable-module=mod_dav \
--enable-module=mod_dav_fs \
--enable-module=mod_dav_lock \
--enable-module=mod_authn_file \
--enable-module=mod_authz_user \
--enable-ldap \
--enable-authnz-ldap \
--enable-module=mod_ldap
make
make install

开启防火墙80 端口:

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

将httpd加入服务:

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

6、安装sqlite:

wget http://www.sqlite.org/2017/sqlite-autoconf-3160200.tar.gz
tar -zxv -f sqlite-autoconf-3160200.tar.gz
cd sqlite-autoconf-3160200/
./configure --prefix=/usr/local/sqlite
make
make install

7、安装zlib:

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -zxv -f zlib-1.2.11.tar.gz 
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib
make
make install

8、安装serf:

8.1、安装scons ==> serf:

安装 serf 需要用 scons 安装:

wget http://prdownloads.sourceforge.net/scons/scons-2.5.1-1.noarch.rpm
rpm -ivh scons-2.5.1-1.noarch.rpm

8.2、安装 openssl-devel ==> serf:

如果在serf安装时 如果报错:
compilation terminated.
scons: *** [buckets/ssl_buckets.o] Error 1
scons: building terminated because of errors.

yum install openssl-devel

8.3、安装 serf:

旧版本svn 是用 neon (--with-neon=/usr/local/neon) 而新版本(1.8开始)是使用serf来支持http访问

wget https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2
tar -jxv -f serf-1.3.9.tar.bz2
cd serf-1.3.9/
scons PREFIX=/usr/local/serf APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr-util/bin/apu-1-config
scons install

9、安装svn:

wget http://mirrors.cnnic.cn/apache/subversion/subversion-1.9.5.tar.bz2
tar -jxv -f subversion-1.9.5.tar.bz2
cd subversion-1.9.5/
./configure --prefix=/usr/local/subversion \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr-util/bin/apu-1-config \
--with-apxs=/usr/local/httpd/bin/apxs \
--with-sqlite=/usr/local/sqlite \
--with-zlib=/usr/local/zlib \
--with-serf=/usr/local/serf
make
make install

10、如果使用./svn命令出现错误:

svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
解决:把serf安装后的 libserf-1.so.1.3.0 复制到svn的安装目录下的lib目录(直接复制libserf-1.so 会出现 链接已断的错误属性 没有用)

/usr/local/subversion/bin/svn --version
cp /usr/local/serf/lib/libserf-1.so.1.3.0 /usr/local/subversion/lib/libserf-1.so.1

11、将svn目录下的几个模块复制到apache下,支持ladp功能:

cp /usr/local/subversion/libexec/mod_authz_svn.so /usr/local/httpd/modules/mod_authz_svn.so
cp /usr/local/subversion/libexec/mod_dav_svn.so /usr/local/httpd/modules/mod_dav_svn.so


二:httpd.conf配置:

1、匿名登录:

#开启模块
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so

#url访问路径,可以不等于 实际的根目录 (指定的路径不要和www的冲突 不然可能会是301报错)
<Location /svn>  
    DAV svn
    #仓库的根目录(增加/删除仓库的时候 不需要重启apache服务)
    SVNParentPath /svn  
</Location>

2、账号密码验证(明文):

Basic -- htpasswd 基本认证
Digest -- htdigest 基本认证的改进

创建密码文件:

-c 创建文件(第一次需要,后面几个用户就不需要了)
-m md5

/usr/local/httpd/bin/htpasswd -c -m /etc/svn-auth.htpasswd username1
/usr/local/httpd/bin/htpasswd -m /etc/svn-auth.htpasswd username2

/usr/local/httpd/bin/htdigest -c /etc/svn-auth.htdigest "AuthName" username1
/usr/local/httpd/bin/htdigest /etc/svn-auth.htdigest "AuthName" username2
#开启模块#下面三个顺序是必须的
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_user_module moduels/mod_authz_user.so

<Location /svn>
    DAV svn
    SVNParentPath /svn
    
    #这一行必须要!
    Require valid-user
    AuthType Basic
    AuthName "SVN-basic" 
    
    #AuthType Digest
    #AuthName "SVN-digest" 
    
    AuthBasicProvider file
    
    #账号密码文件
    AuthUserFile /svn/svn-auth.htpasswd  
    #权限文件
    AuthzSVNAccessFile /svn/svntest.conf
</Location>

3、ldap登陆:

#开启模块#下面三个顺序是必须的
LoadModule dav_module modules/mod_dav.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

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_user_module moduels/mod_authz_user.so

<Location /svn>
    DAV svn
    SVNParentPath /svnt

    Require valid-user
    AuthType Basic
    AuthName "SVN-ldap" 
    AuthBasicProvider ldap
#   AuthzLDAPAuthoritative 属性在2.4版本中已经取消: http://httpd.apache.org/docs/2.4/upgrading.html#run-time
#   AuthzLDAPAuthoritative off
    AuthLDAPURL "ldap://192.168.1.1/ou=People,dc=abc,dc=net"
    AuthLDAPBindDN "cn=admin,dc=abc,dc=net"
    AuthLDAPBindPassword "abcd"
#   AuthzSVNAccessFile /svnt/svntest.conf
</Location>

4、AD域登陆:

#开启模块#下面三个顺序是必须的
LoadModule dav_module modules/mod_dav.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

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_user_module moduels/mod_authz_user.so

<Location /svn>
    DAV svn
    SVNParentPath /svnt

    Require valid-user
    AuthType Basic
    AuthName "SVN-ad" 
    AuthBasicProvider ldap

    AuthLDAPURL "ldap://192.168.1.2/dc=abc,dc=com?samaccountName?sub?(objectClass=*)"

    AuthLDAPBindDN "administrator"
    AuthLDAPBindPassword "abcd"

#   AuthzSVNAccessFile /svnt/az.conf
</Location>


三:az.conf 权限控制:

#设置组
[groups]
group1=username1

[/]
#组
@group1=rw
#用户
username2=rw

#这里就是svn下的目录名
[repos_name:/]  
@group1=rw
username2=rw
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容