Apache Directory Server使用指南
apachedsldap配置使用说明

ApacheDS LDAP 配置使用说明Apache LDAP包括ApacheDS服务和Apache Directory Studio RCP工具。
下面的内容主要介绍ApacheDS服务和ApacheDS工具。
ApacheDS服务下载地址:/apacheds/2.0/downloads.html 下载独立的Apache Directory Studio的RCP程序:/studio/安装Eclipse插件:/studio/update/2.x/一、安装ApacheDS服务安装ApacheDS服务器,在ApacheDS官网下载最新的服务器,目前的版本是ApacheDS2.0.0-M8 ,可以根据需要下载适合自己的版本:如Windows系统:1、可以下载“Download Windows installer”安装版,ApacheDS的安装比较简单,没有什么特殊的设置。
在ApacheDS 安装完成后要启动ApacheDS服务。
路径如下:控制面板---à管理工具---à服务--àApache Directoryserver,ApacheDS的监听端口默认为10389。
2、还可以下载“Download Archivezip/tar.gz",解压apacheds-2.0.0-M8.tar包,然后在apacheds-2.0.0-M8目录下的bin目录,点击ApacheDS.bat 可启动服务。
也可以将此服务设置成系统服务。
在每次机器启动时会自动开启。
二、Apache Directory Studio使用说明Apache Directory Studio 是一个LDAP 的工具平台,用来连接到任何LDAP 服务器并进行管理和开发工作。
主要功能:LDAP浏览器、LDIF编辑器、嵌入式ApacheDS、ACI编辑器。
1、安装Apache directory studio该软件是ApacheDS的一个客户端工具。
Apache目录权限设置

apache 目录权限设置方法可以使用<Directory 目录路径>和</Directory>这对语句为主目录或虚拟目录设置权限,它们是一对容器语句,必须成对出现,它们之间封装的是具体的设置目录权限语句,这些语句仅对被设置目录及其子目录起作用。
下面是主配置文件中设置目录权限的例子。
<Directory "/var/www/icons">Options Indexes MultiViewsAllowOverride NoneOrder allow,denyAllow from all</Directory>(1)定义目录使用哪些特性Options Indexes MultiViewsOptions选项用于定义目录使用哪些特性,包括Indexes、MultiViews和ExecCGI 等,如表7-1所示。
表7-1 目录特性选项命令说明Indexes允许目录浏览当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时,Apache以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中),如图7-8所示MultiViews允许内容协商的多重视图MultiViews其实是Apache的一个智能特性。
当客户访问目录中一个不存在的对象时,如访问“http://192.168.16.177/icons/a”,则Apache会查找这个目录下所有a.*文件。
由于icons目录下存在a.gif文件,因此Apache会将a.gif 文件返回给客户,而不是返回出错信息AllAll包含了除MultiViews之外的所有特性,如果没有Options语句,默认为All ExecCGI允许在该目录下执行CGI脚本FollowSymLinks可以在该目录中使用符号连接Includes允许服务器端包含功能IncludesNoExec允许服务器端包含功能,但禁用执行CGI脚本让主目录允许目录浏览细心的用户可能会发现虽然在主目录设置了Indexes权限,且主目录中并不存在默认文档,但访问时并不会出现目录列表,而只出现Apache的测试页面。
APACHE安装配置说明

APACHE安装配置说明⼀、软件下载⼆、环境检查# rpm -qa|grep zlibzlib-devel-1.2.3-3zlib-1.2.3-3# rpm -qa|grep sslopenssl-devel-0.9.8b-10.el5openssl-0.9.8b-10.el5如果需要依赖包,安装其对应的devel包即可,此处仅⽤到zlib和ssl。
另,如果有httpd包,要先卸载掉或停⽌其服务。
三、编译安装1、针对安装⽬的的说明(来⾃INSTALL⽂件)如果是开发者则使⽤此选项,--with-included-apr利于连接apache的代码或者是调试apache,其消除了由于版本或者编译中跟APR或者APR-util代码产⽣的不匹配;如果从⼦版本编译apache,要先运⾏buildconf(需要Python,GNU autoconf和libtool),然后运⾏configure。
发⾏包不⽤。
如果要在FreeBSD5.4之前编译时包含apache的threaded MPM,需要使⽤--enable-threads和--with-mpm 参数在Mac上编译⼦版本,要使⽤GNU Libtool 1.4.2及以上版本2、关于SSL加密和正则表达式(来⾃⽂件README)Apache2.0及以上版本在⽬录modules/ssl/下包含了mod_ssl模块⽤于配置和监听ssl⽹络接⼝的连接。
(另外,⼀些apr-util版本在⽬录srclib/apr-util/ssl/下提供了ssl⽹络接⼝)带有单词crypto的包的名字,可能包含openssl加密库的⽬标代码。
如果apache的加密功能不理想或者要排除再重分配,则可以使⽤包的名字包含nossl的发布包。
Apache使⽤PCRE包包含的正则表达式。
3、对configure参数的说明配置帮助表:-h, --help显⽰帮助信息display this help and exit--help=short ⽤short参数将只显⽰正在运⾏的当前脚本的选项,⽽不能列出适⽤于Apache配置脚本所运⾏的外部配置脚本的选项display optionsspecific to thispackage--help=recursive 使⽤recursive参数将显⽰所有程序包的简短描述display the shorthelp of all theincluded packages-V, --version显⽰版本display version information and exit-q, --quiet, --silent不显⽰checking……信息do notprint`checking...' messages--cache-file=FILE在指定⽂件中存储测试结果cache test results in FILE [disabled]-C, --config-cache 在⽂件config.cache中存储测试结果alias for `--cachefile=config.cache'-n, --no-create configure脚本运⾏结束后不输出结果⽂件,常⽤于正式编译前的测试。
apache配置及模块指令速查

Apache常用模块和参数1Apache服务配置指令1.1基本配置命令AccessFileName语法AccessFileName filename默认值AccessFileName .htaccess作用域server config, virtual host此命令是针对目录的访问控制文件的名称;AddDefaultCharset语法AddDefaultCharset On|Off|charset默认值AddDefaultCharset Off作用域server config, virtual host, directory, .htaccess用于指定默认的字符集,在HTTP的回应信息中,若在HTTP头中未包含任何关于内容字符集类型的参数时,此指令指定的字符集添加到HTTP头中,此时将覆盖网页文件中通过META 标记符所指定的字符集.默认字符集为: AddDefaultCharset UTF-8 若显示中文时出现乱码,解决方法是将字符集设置为GB2312,即: AddDefaultCharset GB2312DefaultType语法DefaultType MIME-type默认值DefaultType text/plain作用域server config, virtual host, directory, .htaccess服务器不知道文件类型时,用缺省值通知客户端;DocumentRoot设置Apache提供文件服务的目录;ErrorDocument设置当有问题发生时,Apache所做的反应;ForceType此指令强制所有匹配的文件被当作在MIME-type中指定的Content-Type来伺服。
比如说,如果您有一个包含大量GIF文件的目录,可您又不想全都为它们加上".gif"扩展名的话,您可以这样做:型的扩展名。
你可以通过使用"None"覆盖任何ForceType设置:<IfModule>使用不包含在Apache安装中的模块的命令Include包含其它的配置文件Listen默认值:80Listen命令告诉服务器接受来自指定端口或者指定地址的某端口的请求,如果listen仅指定了端口,则服务器会监听本机的所有地址;如果指定了地址和端口,则服务器只监听来自该地址和端口的请求Options控制某个特定目录所能使用的服务器功能;其值有:None:表示只能浏览,FollowSymLinks:允许页面连接到别处,ExecCGI:允许执行CGI,MultiViews:允许看动画或是听音乐之类的操作,Indexes:允许服务器返回目录的格式化列表,Includes:允许使用SSI。
apache配置directory

apache配置<Directory> 指令说明封装一组指令,使之仅对文件空间中的某个目录及其子目录生效语法<Directory directory-path> ... </Directory>作用域server config, virtual host状态核心(C)模块core<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。
任何可以在"directory"作用域中使用的指令都可以使用。
Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。
在通配符字符串中,"?"匹配任何单个的字符,"*"匹配任何字符序列。
您也可以使用"[]"来确定字符范围。
以上通配符都不能匹配"/"字符。
所以<Directory /*/public_html>将无法匹配/home/user/public_html ,但<Directory /home/*/public_html>能够正确匹配。
比如说:<Directory /usr/local/httpd/htdocs>Options Indexes FollowSymLinks</Directory>使用directory-path参数的时候要注意:它们必须与Apache用于访问文件的文件系统路径保持一致。
赋予特定<Directory>的指令将无法对通过不同路径指向的同一个目录文件生效,比如说通过另外一个符号连接生成的路径。
扩展的正则表达式也可以通过附加一个"~"字符来使用。
比如说:<Directory ~ "^/www/(.+/)*[0-9]{3}">将匹配/www/下所有由3个数字组成的目录。
Apache FtpServer配置详解

No
码
key-alias
type algorithm
密钥存储中 Key 的别名
密钥存储类型 密钥存储算法
Uses first No
key found
No
JKS
No
SunX509
truststore 该元素用于配置信任存储,以定位信任的证书。
元素
描述
-3-
是否必需
默认值
FtpServer 配置详解手册
默认值 TLS
NONE
所有的加 密组件均 可用
keystore 元素 如果提供了 ssl 元素,它将是必须的。它为密钥存储提供配置,用于查找私钥和服务器 证书。
元素
描述
是否必需 默认值
file password
key-password
密钥存储路径 密钥存储密码
密钥存储中的密钥密码
Yes
Yes
密钥存储密
<truststore file="mytruststore.jks" password="secret"/> </ssl> <data-connection idle-timeout="60">
Apache配置详解

Apache配置详解Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
主站点的配置(基本配置)(1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。
其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。
Listen 80 #服务器监听的端口号。
ServerName :80 #主站点名称(网站的主机名)。
ServerAdmin admin@ #管理员的邮件地址。
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。
以下是对主站点的目录进行访问控制:<Directory "/mnt/web/clusting">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>在上面这段目录属性配置中,主要有下面的选项:Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:ExecCGI: 在该目录下允许执行CGI脚本。
FollowSymLinks: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
其它可用值和含义请参阅:/Apache/ApacheManual/mod/core.html#options AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):None: 当AllowOverride被设置为None时。
Apache的安装及使用

Apache的安装及使⽤PHP最初是 Persional Home Page 的缩写,表⽰个⼈主页。
下载Apache进⼊apache服务器官⽹这⾥我们以下载稳定版的Apache httpd 2.4.39 Released 为例,点击download。
下载后解压,改名为httpd,放到D盘根⽬录。
Apache 各⽬录作⽤⽬录名说明bin Apache执⾏⽂件所在⽬录,如httpd.exe、ApacheMonitor.exe 等cgi-bin GCI⽹页程序存放⽬录conf Apache服务器配置⽂件所在⽬录error错误⽂件⽬录,⽤于保存因服务器设置或浏览器请求的数据错误时产⽣的错误htdocs默认Web⽂档根⽬录,就是存放默认⾸页的位置icons Apache预设的⼀些⼩图标存放⽬录includeliblogs Apache ⽇志⽂件存放⽬录,主要包括访问⽇志 access.log 和错误⽇志 error.logmodules Apache服务器⽀持的动态加载模块所在⽬录安装 Aapche 服务使⽤管理员⾝份运⾏cmd,命令⾏下进⼊到 Apache 下⾯的 bin ⽬录,输⼊httpd -k install把apache安装成windows后台服务。
命令启动Apache服务:httpd -k starthttpd -k stop停⽌httpd -k restart重启更多命令,请使⽤httpd -help查看如果出现以下错误【原因】httpd.conf ⾥⾯配置的 ServerRoot 路径跟实际路径不⼀致,导致路径⽆效。
【解决⽅案】修改 D:\httpd\Apache24\conf ⽬录下的 httpd.conf ⽂件,在38⾏左右Define SRVROOT "D:/httpd/Apache24"ServerRoot "${SRVROOT}"注意路径是 “/”不是“\”端⼝冲突问题Apache 默认使⽤的端⼝号为 80,如果遇到 80 端⼝被其他应⽤程序占⽤的情况,有两种解决⽅案:⽅案⼀:将占⽤ 80 端⼝的程序关闭掉,具体做法如下:在cmd中运⾏netstat -ano "80"查看是哪个PID在使⽤ 80 端⼝,查找到PID 后可以使⽤ kill 命令将其结束掉进程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本教程是在笔者学习JNDI过程中,由于没有合适的免费服务器做为实验,给Sun的JNDI 教程的LDAP服务器使用的又是Sun的服务器,OpenLDAP又没有找到Windows的版本,所以就决定使用Apache的开源LDAP服务器---Apache Directory Server。
下面是Apache 网站对Apache Directory Project的介绍:The Apache Directory Project provides directory solutions entirely written in Java. These include a directory server, which has been certified as LDAP v3 compliant by the Open Group (Apache Directory Server), and Eclipse-based directory tools (Apache Directory Studio).Apache Directory项目提供了用纯Java编写的目录解决方案,其中包含ApacheDS,即Apache Directory Server,它是一个被授权的LDAP v3的服务器。
同时还包含基于Eclipse 的目录工具,即Apache Directory Studio。
ApacheDS基本用户参考指南,主要介绍了如何安装ApacheDS 1.0,通过不同的图形化客户端连接服务器,当然主要还是需要通过JNDI编程来实现服务器的连接,这部分内容在JNDI教程中进行介绍。
同时介绍了如何操作目录服务中的数据以及将ApacheDS和其它软件进行集成。
Apache Directory Server简介ApacheDS 1.0是一个由纯Java语言编写的开源LDAP服务器。
ApacheDS具有可嵌入、可扩展、标准的遵守LDAP协议等特性,同时支持其他的网络协议,例如NTP和Kerberos。
但是ApacheDS是一个LDAP服务器是最基本的。
各个特性介绍如下:Embeddable means that it is possible to configure, start and stop ApacheDS from other Java components, especially application servers, and the server runs within the same VM. The solution has already been successfully embedded in Apache Geronimo, JBoss, and others. The fact that the server is embeddable is quite interesting, nevertheless you also have the deployment option to run the server standalone, for instance as a Windows service. Perhaps you know this situation from other LDAP serversopen source (like OpenLDAP) as well as commercial ones (like Sun Java System Directory Server). This guide is dedicated to people that are new to ApacheDS. The guide concentrates on installing, configuring and running ApacheDS in a standalone configuration.Extendable means that the modern architecture of the solution provides many extension points. Write your own partitions to store directory data, interceptors to add functionality,(通过编写自定义分区来存储目录数据,编写自定义拦截器来增加功能。
这些都是通过使用Spring来实现特定的接口来完成的。
) etc. by implementing certain interfaces and plugging them in using Spring.Standard compliant means that ApacheDS 1.0 adheres to all RFCs relevant to LDAPv3. Please note that the server has been successfully certified by the Open Group in September 2006 ("LDAP certified"). Thus LDAP clients may rightly expect that ApacheDS behaves like they expect.Modern means that ApacheDS aims modernize the LDAP territory, as well as it favors standards compliance. New rich integration tier constructs like LDAP Stored Procedures and Triggers are being built on top of existing standards.Entirely written in Java means that the software compiles and runs on a huge number of hardware and software platforms. Native installers are available for Windows, MacOS and Solaris (both SPARC and intel platform), but in fact the set of possible targets is by far more extensive.(用Java写的有点就是可移植性好)整体架构一览:其中JNDI作为一个通用的接口来访问目录服务。
基本概念目录:一般来说,目录就是数据的集合或者清单。
现实世界中的例子有电话薄,教堂登记簿等。
这些例子的一个共同目的就是保存信息并且在需要的时候可以使用。
在信息技术中,directory这个概念用来表示一种特殊的数据存储。
它使用结构化存储和高效化获取对象,这些对象来自现实世界。
实体:所有的数据以实体为单位进行存储。
实体的集合组成一棵树。
目录服务:提供访问存储在目录中的信息的解决方案就叫做目录服务。
目录服务通过一个定义好的接口提供对目录内容的访问,如果使用网络的话,那么就需要一个合适的协议,LDAP 协议应运而生。
乍一看,目录服务作为数据存储工具与关系数据库存在竞争,但是实际上大多数大型企业或者组织同时使用目录服务和关系数据库。
LDAP发展历史:如下图所示:信息模型在LDAP的信息模型中,数据是以实体进行存储的,从而建立了一个层次化树状的结构。
每个实体都有唯一的名字,即DN,Distinguished Name,DN描述了实体在树中的具体位置。
实体由属性构成,属性是键值对key/value pairs。
一些属性可能在一个实体中不止出现一次(单值或者多值,例如一个人可能有不止一个电话号码)。
所谓的object class定义了一个实体可以有的属性以及哪些属性是必须的。
这些classes同样建立了一个层次结构,top作为这个层次的根。
这和面向对象相似。
top 只有objectclass属性,用来指派实体的object classes。
shcema由object classes和属性类型组成,因此它定义了哪种实体可以存储在目录中。
目录服务器管理schema,这些schema多数是由RFC标准进行定义的。
另外,大多数目录服务器允许用户定义object classes和属性。
基于LDAP目录的常见操作LDAP操作包括实体的创建,修改,删除以及查询。
上图展示了作为LDAP客户端的不同类型的软件产品。
ApacheDS的下载、安装和使用安装需求:Java 5.0(通过使用java –version命令进行查看)另外需要给JVM分配384MB的内存,这是默认的设置,笔者的RAM是2G的,所以无所谓了,如果内存较小的机器,可以通过控制台进行修改。
稍后介绍修改办法。
Apache网站提供了很多平台的本地安装包MacOS (jar)∙Solaris SPARC (jar)∙Solaris i386 (jar)∙Windows (exe)∙Debian package∙RPM package∙Linux (jar)可以从这里进行下载特定平台的安装文件。
如果是使用Linux系统的话,需要使用图形化用户界面进行安装,即X11图形用户界面。
笔者使用的系统是Windows,所以下载了Windows平台的安装文件,文件名为apacheds-1.0.2-win32-setup.exe,其中Apache网站还提供升级版本的安装文件,版本为1.5.1,这个版本是对应Java 5.0的版本,还不是稳定的版本。
下载后就可以进行安装了,注意安装的时候需要以管理员身份进行安装。
在安装过程中可以选择是否作为windows系统服务进行安装,这样就可以随windows系统启动的时候启动,笔者习惯自己启动所需的服务,所以不选择这个选项。
安装完成后,在开始菜单中具有程序菜单,主要有三个选项,分别为:其中第一个用于进行服务的设定,第二个用于测试服务运行是否出现错误,第三个用于打开任务监视器。
执行服务器设定,则打开下图的程序,在这里可以设置服务名、描述、启动类型(手动,自动,禁止)、启动、停止、暂停、重启程序,以及登录、日志记录位置、Java 设定以及启动和停止的一些选项,下图是一个基本的选项。
下图是Java选项的tab,可以在这里设置使用的JVM,Apache建议使用Sun的JDK,但是也支持其他的JDK,同时可以设置服务器的java类路径以及系统属性(Java Options),可以在这个界面修改服务器运行所需的内存。