CentOS6 配置svn+apache使用linux本地账户认证

来源:互联网 发布:淘宝商品详情批量修改 编辑:程序博客网 时间:2024/06/05 04:45

前提,svn已配好,apache已配好,httpd+svn的配置已正常工作。只是更改svn的认证为linux本地密码认证方式。

1,yum安装httpd-devel

2,安装mod_authnz_external,这个yum源上没有,只有下载安装包手工安装

从http://code.google.com/p/mod-auth-external/ 选择对应的版本

查看本地Apache版本为2.2,则安装3.2.6版本的mod-auth-external

解压后执行

#apxs -c mod_authnz_external.c   (编译)
#apxs -i -a mod_authnz_external.la (安装)

3,安装最关键的pwauth这个也在yum源上没有,

从http://code.google.com/p/pwauth/downloads/list选择一个版本2.3.10

解压后更改config.h配置文件,设置这行、

   #define SERVER_UIDS 48(这个数字是svnrepo目录的访问group id,比如这里是apache)

  也可以是几个group的id 

 #define SERVER_UIDS 12,48,501

然后#make

得到pwauth,可以copy到指定目录比如/usr/local/bin/pwauth,注意这个文件的权限一定是root, chmod 755否则可能不能访问/etc/shadow/

4,配置subversion.conf

    AddExternalAuth pwauth /usr/local/bin/pwauth

    SetExternalAuthMethod pwauth pipe

    <Location /svnroot>
        DAV svn
        SVNPath /var/svn/repo
        AuthType Basic
        AuthNAme "Restricted"
        AuthBasicProvider external
        AuthExternal pwauth
        require valid-user
        require group svnusers
    </Location>

5,重启httpd服务

6,Done