`

Apache+svn+openldap+phpldapadmin方案操作日志

    博客分类:
  • LDAP
 
阅读更多

1.方案说明 

  • apache作为前端访问入口和功能整合
  • svn的认证使用apache代理openLDAP完成
  • svn的权限和授权受限于svn本身的机制,目前任然使用其原生配置文件方式。
  • openLDAP提供用户身份认证数据提供和用户统一管理

2.环境及软件

2.1.操作系统准备

操作系统:centos-6.3 64位

因为在部署整个环境中经常需要安装一些系统的组件,所以,这里先配置好yum的仓库,便于后面安装设置。

yum仓库设置

1.centos-6.3安装包FTP准备

在网络内任务服务器上,解压操作系统的ISO文件(如:/pub/centos/6.3),并把对应的包文件夹暴露为FTP服务(访问地址如:ftp://192.168.30.33/pub/centos/6.3/x86_64/)

 

2.设置操作系统的yum仓库

# cd /etc/yum.repos.d/

# 如果文件不存在则创建文件:centos6.3_x86_64.repo

# touch centos6.3_x86_64.repo

# 使用VI编辑设置仓库

# vi centos6.3_x86_64.repo

 

[centos6.3]

name=centos6.3

baseurl=ftp://192.168.30.33/pub/centos/6.3/x86_64/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

 

以上配置中,gpgcheck=0表示访问不需要验证;enabled=1表示本仓库可用。

 

3.安装必须的组件

# yum install openssl

# yum install gcc

 

如果后续在各软件安装过程中,出现错误提示需要依赖某组件或找不到某组件,请使用yum search 和 yum install 进行安装。

 

 

2.2.软件准备

    软件所有内网共享地址:\\192.168.30.202\public_resources\topic\apache_svn_openldap_phpldapadmin

 

  • httpd-2.2.21.tar.gz     (下载地址:http://apache.etoak.com//httpd/httpd-2.2.23.tar.gz )
  • subversion-1.7.9.tar.bz2
  • db-5.3.15.tar.gz(bdb)
  • openldap-2.4.35.tgz
  • phpldapadmin-1.2.3.zip
  • sqlite-amalgamation-3071602.zip

# mkdir /data/packages

# cd /data/packages

拷贝或下载一下文件到/data/packages目录,待用。

 

 

3.安装openLDAP

 

安装BDB

LDAP采用openLDAP,因为其依赖DBD,所以我们先安装BDB。

# cd /data/packages

 

# tar -zxvf db-5.2.15.tar.gz 

# db-5.3.15/build_unix

# ../dist/configure

# make

# make install

 

如果出现错误:configure: error: C compiler cannot create executables

解决办法:yum install glibc-devel

 

安装完成后,安装目录在:/usr/local/BerkeleyDB.5.3

 

# 设置系统级动态链接

# cd /etc/ld.so.conf.d

# touch bdb.conf

# echo /usr/local/BerkeleyDB.5.3/lib > bdb.conf

# ldconfig

 

 

安装openLDAP

# cd /data/packages

 

tar -xzvf openldap-2.4.35.tgz

cd openldap-2.4.35

./configure --prefix=/usr/local/openldap CPPFLAGS="-I/usr/local/BerkeleyDB.5.3/include" LDFLAGS="-L/usr/local/BerkeleyDB.5.3/lib" 

make depend

make

make install

 

 

安装完成后目录在:/usr/local/openldap/

 

配置openLDAP

 

# 新建LDAP数据存储目录

# mkdir /data/openldap/data

 

openLDAP一般只需要配置:/usr/local/openldap/etc/openldap/slapd.conf 文件,主要是设置根,认证,名称等基础信息。如下:

# vi /usr/local/openldap/etc/openldap/slapd.conf

 

 

# 默认的schema只有core,增加两个常用的schema,用于建立用户信息。
include         /usr/local/openldap/etc/openldap/schema/core.schema
include         /usr/local/openldap/etc/openldap/schema/cosine.schema
include         /usr/local/openldap/etc/openldap/schema/inetorgperson.schema

#######################################################################
# BDB database definitions
#######################################################################
# 使用bdb作为存储
database        bdb
# 顶层节点DN配置
suffix          "dc=feinno,dc=com"
# 管理员DN
rootdn          "cn=Manager,dc=feinno,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# 密码,这里设置的是123456,请根据其情况设置
rootpw          123456
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
# 存储路径
directory       /data/openldap/data
# Indices to maintain
# 索引配置
index   objectClass     eq
 以上内容是需要修改和配置的,其他参数主要是权限配置,可以暂不配置。完成配置后,请保持退出。

 

 

 

# 配置环境变量,用户后续的LDAP操作

# vi /etc/profile

在文件结尾加入:

export PATH=$PATH:/usr/local/openldap/bin

保持退出

# soruce /etc/profile

 

启动openLDAP

# /usr/local/openldap/libexec/slapd

# 停止openLDAP

# killall slapd

 

验证和使用openLDAP

1.命令行方式使用ldif文件建立根组织DN

# mkdir /data/openldap/ldif

# cd /data/openldap/ldif

# vi feinno.com.ldif

 

 

dn:dc=feinno,dc=com
objectclass:top
objectclass:dcObject
objectclass:organization
o:feinno
dc:feinno
 保存退出

 

# 命令方式创建根DN entity:"dc=feinno,dc=com",使用rootdn的账户和密码(前面slapd.conf文件中配置)

# ldapadd -x -D "cn=Manager,dc=feinno,dc=com" -W -f feinno.com.ldif

Enter LDAP Password:

adding new entry "dc=feinno,dc=com"

 

......

 

# 查询已经创建的entity

# ldapsearch -x -b 'dc=feinno,dc=com' '(objectclass=*)'

......

 

2.使用桌面客户端工具

推荐使用桌面工具:

这里使用LDAPAdmin 做操作演示。

我们Demo的LDAP结构如下:

 

 

建立连接:



 

创建组织结构单元:



 

建立部门节点:



 建立用户:



 

 

3.使用B/S的phpLDAPAdmin

请参见后面第7节

 

4.安装Apache

安装

 

apache是整个SVN和LDAP的前端,这里打开其动态加载功能(DSO)

# yum install openldap-devel zlib-devel expat-devel

# cd /data/packages

# tar -xzvf httpd-2.2.23.tar.gz

# cd httpd-2.2.23

# ./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=all --enable-dav=share --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap

# make

# make install

安装完成后,目录在:/usr/local/apache2

# 设置环境变量,方面后面操作

 

# vi /etc/profile

在文件结尾加入:

export PATH=$PATH:/usr/local/apache2/bin

保持退出

# soruce /etc/profile

 

基本配置

主配置文件:/usr/local/apache2/conf/httpd.conf

1、修改ServerName,防止DNS查找失败错误

# If your host doesn't have a registered DNS name, enter its IP address here.

ServerName localhost:80

 

 

2、打开server-status配置,支持apache 状态检查。

请确保主配置文件中存在配置行:

LoadModule status_module modules/mod_status.so

在主配置文件结尾加入:

 

ExtendedStatus On

<Location /server-status>

  SetHandler server-status

  Order allow,deny

  Allow from all

</Location>

 

系统服务和自启动

 

# apache 服务和自启动

Apache加入到系统服务里面:

# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

修改httpd

在文件头部加入如下内容:

###

# Comments to support chkconfig on RedHat Linux

# chkconfig: 2345 90 90

# description:http server

###

保存

 

# chkconfig --add httpd

# chkconfig --level 35 httpd on

等级0表示:表示关机

等级1表示:单用户模式

等级2表示:无网络连接的多用户命令行模式

等级3表示:有网络连接的多用户命令行模式

等级4表示:不可用

等级5表示:带图形界面的多用户模式

等级6表示:重新启动

 

 

 

验证

# apachectl start

# 打开浏览器访问:http://ip

如果现实:It work! 表示安装成功。

# 关闭apache,等待配置

# apachectl stop

 

 

 

 

5.安装SVN

安装

# subversion1.7.9的编译依赖 SQLITE的算法

# cd /data/packages

# tar -xjvf subversion-1.7.9.tar.bz2

# cd subversion-1.7.9

# mkdir sqlite-amalgamation

# cd..

# unzip sqlite-amalgamation-3071602.zip

# cp sqlite-amalgamation-3071602/sqlite3.c subversion-1.7.9/sqlite-amalgamation/

# cd subversion-1.7.9

# ./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2

# make

# make install

安装成功后,安装目录在:/usr/local/subversion

# 设置环境变量

 

# vi /etc/profile

在文件结尾加入:

export PATH=/usr/local/subversion/bin:$PATH

保持退出

# soruce /etc/profile

 

创建和配置仓库

# 创建SVN仓库目录

# mkdir /data/svn/repositories

# cd /data/svn/repositories

# 创建测试工程

# svnadmin create project1

 

# svnadmin create project2

# svnadmin create project3

# svnadmin create project4

# svnadmin create project5

# ls

project1  project2  project3  project4  project5  project6

# 创建authz.conf文件,作为工程权限控制的配置文件。(配置语法请参考:http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html

# vi authz.conf

 

[groups]
admin=zhangpu
 
[/]
@admin=rw
*=
#*=r
 

[project1:/]
zhangpu=r
libingyang=r
*=

 

 

完成以上后,待用,后续使用apache整合。

 

6.配置apache+svn+ldap

# 采用HOST方式配置,打开主配置文件httpd.conf文件中对host配置的引用注释。

# vi /usr/local/apache2/conf

 

Include conf/extra/httpd-vhosts.conf

 

保存退出

# 配置vhost

# cd /usr/local/apache2/conf/extra

# vi httpd-vhosts.conf

 

NameVirtualHost *:80

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<VirtualHost *:80>
    ServerAdmin xxxx@gmail.com
    ServerName svn.acooly.com
    ErrorLog logs/svn.feinno.com-error_log
    CustomLog logs/svn.feinno.com-access_log common

    <Location /svn>
         # SVN配置
         DAV svn
         SVNListParentPath on
         SVNParentPath /data/svn/repositories/
         AuthzSVNAccessFile /data/svn/repositories/authz.conf
        
        # 在ldap找不到账号的情况下可以使用其它的认证方式(如,密码文件)
        AuthzLDAPAuthoritative off
        # openLDAP的管理账户
        AuthLDAPBindDN "cn=Manager,dc=feinno,dc=com"
        AuthLDAPBindPassword 123456

         AuthBasicProvider ldap
         # 认证数据来源:"ou=rd,dc=cq,dc=feinno,dc=com" 下所有子entity的uid作为认证用户名
         AuthLDAPURL "ldap://localhost:389/ou=rd,dc=cq,dc=feinno,dc=com?uid?sub?(objectClass=*)"
         # http 基本认证
         AuthType Basic
         AuthName "feinno Subversion repository"
         Require valid-user
         # 设置目录权限,实现列表所有工程目录
         Options Indexes FollowSymLinks
         Order allow,deny
         Allow from all
    </Location>

</VirtualHost>
完成配置后,保存退出。

# 启动验证
# service httpd start
使用浏览器访问:http://ip/svn/
输入你在LDAP中设置的账户名(UID)和passwd

 

7.安装php和phpldapadmin

安装配置PHP

# yum install libxml2

# yum install libxml2-devel -y

# cd /data/packages

# tar -xzvf php-5.3.22.tar.gz

# cd php-5.3.22

# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5 --with-ldap --with-gettext

# make

# make install

 安装完成后的目录在:/usr/local/php5

# 拷贝默认的配置文件

# cp /data/packages/php-5.3.22/php.ini-development /usr/local/lib/php.ini

# 如果在配置的时候出现如下问题一般是因为64位操作系统造成的原因,请如下操作解决。

configure: error: Cannot find ldap libraries in /usr/lib

# cp -frp /usr/lib64/libldap* /usr/lib/

 

# 停止apache配置支持php

# service httpd stop

# vi /usr/local/apache2/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so
# 在文件中找到<IfModule dir_module>节点,在后面增加目录默认页面:index.php
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
# 在文件结尾增加对php文件的支持
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

<FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

保存退出

 

安装phpldapadmin

下载1.2.3版本,直接解压到apache的相关目录。修改config/config.php文件配置LDAP相关参数。

# cd /data/packages/phpldapadmin-1.2.3.zip /usr/local/apache2/htdocs/

# cd /usr/local/apache2/htdocs/

# unzip phpldapadmin-1.2.3.zip

# mv phpldapadmin-1.2.3 phpldapadmin

# cd /usr/local/apache2/htdocs/phpldapadmin/config

# 修改phpldapadmin参数

# cp config.php.example config.php

# vi config.php

# ldap服务器地址
$servers->setValue('server','host','127.0.0.1');
# ldap服务端口
$servers->setValue('server','port',389);
# ldap根实体dn
$servers->setValue('server','base',array('dc=feinno,dc=com'));
# ldap管理用户名
$servers->setValue('login','bind_id','cn=Manager,dc=feinno,dc=com');
# ldap管理用户密码
$servers->setValue('login','bind_pass','123456');

 保存退出。

 

从新启动apache,验证phpldapadmin

# service httpd start

访问:http://ip/phpldapdmin

使用ldap的管理账户登录。

 

 

 

  • 大小: 41.8 KB
  • 大小: 14 KB
  • 大小: 62.1 KB
  • 大小: 28 KB
  • 大小: 32 KB
  • 大小: 111.9 KB
分享到:
评论

相关推荐

    apache+svn安装配置

    - 监控Apache和SVN的日志文件,及时发现并解决问题。 - 根据团队规模和项目需求,调整SVN的性能参数。 以上就是"apache+svn安装配置"的详细步骤,通过这些步骤,你可以在本地或服务器上建立一套完整的版本控制...

    ubuntu apache+svn 常用配置

    2. 日志记录:配置Apache的日志文件,以便追踪和分析用户活动。 3. 定期备份:创建计划任务定期备份SVN仓库,以防数据丢失。 六、安全建议 1. 使用强密码并定期更换。 2. 限制SSH访问,仅允许必要的IP地址连接。 3....

    apache+svn配置网络服务器

    Apache 和 Subversion(SVN)的组合是一种常见的版本控制系统,用于管理软件开发中的源代码和其他文件。Apache 作为Web服务器,而Subversion则提供版本控制功能。以下是对这个主题的详细解释: 一、Apache Web...

    centos 下apache+svn安装.docx

    为了在Apache上启用SVN服务,需要编辑Apache的配置文件(通常是`/etc/httpd/conf/httpd.conf`),并添加`LoadModule dav_svn_module /usr/local/subversion/mod_dav_svn.so`和`LoadModule authz_svn_module /usr/...

    Apache+Trac+SVN

    总的来说,Apache+Trac+SVN的组合提供了一套强大的开源项目管理解决方案。通过集成版本控制、问题追踪和文档共享,团队可以高效协作,追踪代码变更,并管理项目进度。虽然初始设置可能需要一些技术知识,但一旦配置...

    apache+svn安装

    ### Apache + SVN 安装与配置详解 #### 概述 在软件开发过程中,版本控制系统是必不可少的工具之一。Subversion(简称SVN)作为一款经典的集中式版本控制系统,在项目管理方面发挥着重要作用。而Apache作为一款...

    Cent OS上配置Apache2 + SVN

    Cent OS上配置Apache2 + SVN Cent OS上配置Apache2 + SVN

    apache+svn+MySQL+PHP+svnmanager+bugfree完全安装手册

    ### Apache+SVN+MySQL+PHP+SVNManager+BugFree 完全安装手册 #### 一、Apache+SVN 安装与配置 ##### 1. 安装 Apache 2.2.9 在安装 Apache 之前,请确保你的计算机运行的是 Windows 2000、Windows XP SP1 或 ...

    windows下apache+svn

    本篇文章将详细介绍如何在 Windows 操作系统上安装和配置 Apache 与 SVN。 首先,我们需要准备的软件包有: 1. Apache HTTP Server 版本 2.2.16,文件名为 `httpd-2.2.16-win32-x86-no_ssl.msi`。 2. Subversion ...

    Apache+SVN+Trac配置详解

    ### Apache+SVN+Trac配置详解 #### 第1章 引言 ##### 1.1 编写目的 本文档旨在详细介绍如何安装与配置Apache、Subversion (SVN) 和 Trac,以便构建一个高效的版本控制系统和项目管理平台。在软件开发过程中,版本...

    centos搭建PHP+mysql+apache+svn

    非常便利的centos搭建PHP+mysql+apache+svn环境搭建文档,只需复制粘贴

    Windows 下面 apache+SVN配置

    至此,Windows上的Apache+SVN配置已完成,团队成员可以通过Web界面进行版本控制操作,如提交、更新、查看历史记录等。不过,为了确保安全,建议进一步细化权限设置,根据实际项目需求对用户进行分组,并设置相应的...

    Apache+SVN+Trac

    【Apache+SVN+Trac】是一个常见的项目管理和版本控制系统组合,主要用于软件开发团队协作。Apache 作为Web服务器,Subversion (SVN) 提供版本控制功能,而 Trac 则是一个集成的项目管理工具,提供了缺陷跟踪、文档...

    windows下配置apache+svn+trac的方法详解

    ### Windows 下配置 Apache + SVN + Trac 的方法详解 #### 一、背景介绍 在进行软件开发的过程中,项目管理和版本控制是非常重要的环节。为了更好地管理项目中的问题追踪、代码版本控制以及文档协作等功能,通常会...

    apache+svnserver配置

    ### Apache + SVNServer 配置详解 #### 一、配置前准备 在开始Apache与Subversion(SVN)服务器的配置之前,确保已正确安装Apache Web服务器和Subversion。本指南将详细介绍如何在Windows环境下配置Apache与...

    Apache+svn+trac安装笔记

    ### Apache+svn+trac 安装指南及配置详解 #### 一、环境与软件准备 在本安装指南中,我们将详细介绍如何在Windows 2000/2003/XP操作系统上安装Apache Web服务器、Subversion (svn) 版本控制系统以及Trac项目管理...

    windows下Apache+SVN+Trac安装及配置(一)

    ### Windows 下 Apache+SVN+Trac 安装与配置详解 #### 一、准备工作 在开始集成 Apache、Subversion (SVN) 和 Trac 的过程中,首先要准备好所需的软件。 1. **Apache HTTP Server** - **官网**: ...

Global site tag (gtag.js) - Google Analytics