ldap+apache+svn
来源:互联网 发布:dapaolu域名更换 编辑:程序博客网 时间:2024/06/05 06:41
ldap+apache+svn
准备工作:apr-1.2.11.tar.gz、apr-util-1.2.10.tar.gz、httpd-2.2.10.tar.gz、zlib-1.2.8.tar.gz、subversion-1.4.6.tar.gz、subversion-deps-1.4.6.tar.gz
这些都是我们需要的,注意: SVN依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr,apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录)
这里有apache旗下所有产品的各个版本的文件,我们可以去这里找我们所需的部分文件
http的安装
依赖的安装
- 将apr-1.2.11.tar.gz解压,进入解压目录,然后
./configure --prefix=/usr/local/apr //--prefix的意思是指定安装位置 make&&make install
- 将apr-util-1.2.10.tar.gz解压,进入解压目录,然后
./configure --with-apr=/usr/local/apr --with-ldap //--with-apr的意思是configure的过程中apr是用指定的apr --with-ldap指的编译过程中添加ldap模块 make&&make install
http的安装
将httpd-2.2.10.tar.gz解压,然后
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config —enable-mods-shared="most dav" —disable-status —enable-authnz-ldap —enable-ldapmake&&make install
注意:
/usr/local/apache/bin/apachectl start的时候会出现
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName,
这里我们修改apache/conf/httpd.conf文件中ServerName这一行,输入ServerName (主机ip)然后我们restart一下apachectl服务就可以了
svn的安装
依赖的安装
将zlib-1.2.8.tar.gz解压,然后
./configure&&make&&make install
svn的安装
- 解压subversion-1.4.6.tar.gz和subversion-deps-1.4.6.tar.gz文件,注意:这两个解压缩后会合并为一个文件夹,
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-openssl --with-zlib --enable-maintainer-mode ``` (出现warning:BDB啥的不管,不影响我们的使用),然后
make&&make install
2. 1. 在上一步./configure出现错误
configure: error: no XML parser was found: expat or libxml 2.x required
解决办法:yum -y install expat expat-devel就可以了
2. 在上一步make出现错误
/app/software/subversion-1.4.3/neon/src/.libs/libneon.a:could not read symbols: Bad value collect2: ld returned 1 exit status
“`
解决办法:我们要在subversion的目录下./neon/src下的Makefile文件里修改CFLAGS这一项,增加-fPIC,例如CFLAGS = -fPIC -g -O2,然后make clean一下,再次make就没有错了
到此,我们编译完成了,接下来是配置
在apache目录下./conf/httpd.conf文件中添加以下内容:
<Location /svn> DAV svn SVNParentPath /data/svn // 配置版本库根目录路径 SVNListParentPath on //可以访问多个版本库 order allow,deny //先匹配禁止的用户 allow from all //没有禁止的就全部允许访问 Options Indexes //设定在目录下面没有index.html 的时候显示目录 AuthzLDAPAuthoritative On //打开权限继承 AuthType Basic // 访问的类型,基本验证,如用户名/密码 AuthName "Subversion repository" //在输入用户和密码框中显示的内容 AuthBasicProvider ldap //采用ldap认证 AuthLDAPURL "ldap://example.com:3268/dc=example,dc=com?sAMAccountName?sub?(objectCategory=person)" //url值,dc代表域名,一二级域名, //一个基本的ldap目录库匹配时,需要提供ldap目录库地址(10.255.1.231(域名也可以,只要能解析):3268),基准DN(根),个人的CN(objectCategory匹配登录用户的cn=person,其中sAMAccountName表示的是CN的其中一个属性,代表登录名) //匹配LDAP目录库记录时,要求要提供以下信息:LDAP目录库地址,基准DN,个人的CN,登录密码 AuthLDAPBindDN "$username" // 输入的是域的账户,全称(包括域名)alan@example.com,用来连接域 AuthLDAPBindPassword $password //相对应的密码abc@123 Require valid-user //允许经过验证的所有用户都可以访问</Location>
- 然后我们建立版本库等操作
mkdir -p /data/svn/repos // 建立svn版本库目录
/usr/local/svn/bin/svnadmin create /data/svn/repos // 建立svn版本库
mkdir /usr/local/svn/conf // 新建存储访问控制文件的目录
配置通过http访问svn
- 创建用户名
/usr/local/apache/bin/htpasswd -c /usr/local/svn/conf/passwd.conf admin // 第一次创建加-c,后面就不用了,admin指的是登录用户名
/usr/local/apache/bin/htpasswd /usr/local/svn/conf/passwd.conf svnusername // 这个是后期追加的用户名,不用-c了 - 建立权限文件
touch /usr/local/svn/conf/authz.conf // 建立控制权限文件,文件内容如下:
[groups]
admin=admin // admin用户属于admin组
[/] // 根目录设置
@admin = rw // 赋予admin组rw权限
[repos:/aaa/bbb]
svnusername = rw // 指定svnusername用户可以读写/aaa/bbb目录的文件,但是aaa目录就没有读写权限了
配置通过svn客户端访问svn
- 在/data/svn/repos/conf目录下,打开authz文件,添加我们需要设置的组用户和相应的权限(可参照上面的配置)
- 打开passwd文件,在相应的组下面添加用户的密码(这里用的是明文)
- 打开svnserver.conf文件,
anon-access = none // 这里我们要注意的是anon-access要更改为none,意为不允许匿名访问
auth-access = write // 经过验证的用户有读写权限
password-db = passwd //使用密码文件验证密码
authz-db = authz //目录权限文件
real = My First Repository //认证域,相同认证域下使用相同的用户名和密码文件 - 启动apache
/usr/local/apache/bin/apachectl start
//如果觉得这个路径太长了,我们可以把这个路径export到profile文件中,这样以后就只需要apachectl start就可以了
通过netstat -an验证80端口是否打开
通过http://ip访问,会要求输入用户名和密码,如果不能访问,看看防火墙是否关闭,关闭防火墙就可以访问,当然,我们可以通过配置防火墙规则也是一样的启动svn
/usr/local/svn/bin/svnserve -d -r /data/svn
- ldap+apache+svn
- Centos+Apache+ldap+ssl+svn
- apache svn集成ldap认证
- SVN/LDAP/APACHE svn读写权限管理
- svn+apache+ldap+ubuntu问题总结
- 使svn+apache利用ldap进行windows ad账号认证
- Apache LDAP
- LDAP认证SVN
- LDAP认证SVN
- cas+apache ldap
- Apache使用LDAP认证
- svn的ldap认证配置
- LDAP-SVN-JIRA-Confluence配置
- 基于LDAP的APACHE验证
- apache + mercurial + LDAP环境搭建
- 编译安装 Apache + Subversion + LDAP
- SVN+Apache
- Apache+SVN
- linux shell基础(一)
- BZOJ 4326: NOIP2015 运输计划
- 曾经的装逼
- 史上最最最炫酷动感的下拉刷新,只需要十秒钟就可以让你完成。
- CodingNet - Learning - 16
- ldap+apache+svn
- js定义类的方式
- hdu 5489 Removed Interval lis变形
- 网络地址基础
- 如何将css,js压缩成jar包maven发布后引用!
- jabc开发基本流程步骤
- 安卓开发之使用双进程守护和进程提权来实现服务进程保活
- Python学习笔记:由range获取列表
- jsp:forward的问题。。。。