4. 其他模块

4.1. mod_dav

4.1.1. 什么是 mod_dav

 

mod_dav 是一个 Apache 模块,为您的 Apache Web 服务器提供 DAV 功能(RFC 2518)。它是一个开源模块,根据 Apache 风格的许可证提供。

 
--www.webdav.org 

从作者的角度来看

DAV 的意思是:“分布式创作和版本控制”。它允许您像管理文件系统一样管理您的网站。它旨在取代 ftp 上传到您的 Web 服务器。

DAV 受到所有主要的 Web 开发工具(较新版本)的支持,并将成为 Web 发布的广泛接受的标准。

4.1.2. 下载源代码

原始站点:http://www.webdav.org/mod_dav/

4.1.3. 构建和安装

cd /usr/local

tar -xvzf mod_dav-1.0.3-1.3.6.tar.gz
cd mod_dav-1.0.3-1.3.6

./configure --with-apxs=/usr/local/apache/bin/apxs

make
make install

Tip容易混淆的文件名
 

文件名mod_dav-1.0.3-1.3.6表明它只能在 Apache 1.3.6 上运行,但实际上它可以在所有 Apache >= 1.3.6 上运行

4.2. auth_ldap

4.2.1. 什么是 auth_ldap

 

auth_ldap 是一个用于 Apache 的 LDAP 身份验证模块,Apache 是世界上最流行的 Web 服务器。auth_ldap 具有出色的性能,并支持 Unix 和 Windows NT 上的 Apache。它还支持通过 SSL 的 LDAP,以及一种允许 Frontpage 客户端管理其 Web 权限的模式,同时仍然使用 LDAP 进行身份验证。

 
--www.rudedog.org 

从作者的角度来看

如果您希望将您的登录功能整合到一个通用的用户/密码库中,LDAP(轻型目录访问协议)是正确的方法。LDAP 是一个开放标准,并得到广泛支持。

用于 LDAP 的登录功能

用于 LinuxSolaris(其他?)的 Unix 登录,FTP 登录(某些 ftp 守护进程),http 基本身份验证,Tarantella 身份验证和角色管理,Samba 身份验证(2.2.x 应该支持此功能)。LDAP 是基于角色的。这意味着,例如,您可以定义一个角色“管理员”,将用户分配为成员,并且该用户可以在允许管理员登录的任何地方登录。

4.2.2. 下载源代码

原始站点:http://www.rudedog.org/auth_ldap/

4.2.3. 构建和安装

cd /usr/local

tar -xvzf auth_ldap-1.6.0.tar.gz

cd auth_ldap-1.6.0

./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-sdk=openldap

make
make install

4.3. mod_auth_mysql

4.3.1. 什么是 mod_auth_mysql

它是一个 http-基本身份验证模块。它允许您在 MySQL 数据库中方便地维护您的用户

4.3.2. 下载源代码

原始站点:ftp://ftp.kciLink.com/pub/mod_auth_mysql.c.gz

4.3.3. 构建和安装

gunzip mod_auth_mysql.c.gz

/usr/local/apache/bin/apxs \
-c -I/usr/local/mysql/include \
-L/usr/local/mysql/lib/mysql \
-lmysqlclient -lm mod_auth_mysql.c

cp mod_auth_mysql.so /usr/local/apache/libexec/

在您的文件中添加此行httpd.conf:

LoadModule mysql_auth_module libexec/mod_auth_mysql.so

以及其他模块添加的位置

AddModule mod_auth_mysql.c

注意 MySQL 库和包含文件的路径是否正确。

Tip库路径
 

确保在编译之前 /usr/local/mysql/lib/mysql 在 /etc/ld.so.conf 中

4.3.4. 示例配置

示例 1. /usr/local/apache/conf/httpd.conf

<location /manual/>
  AuthType Basic
  AuthUserfile /dev/null
  AuthName Testing
  AuthGroupFile /dev/null
  AuthMySQLHost localhost
  AuthMySQLCryptedPasswords Off
  AuthMySQLUser root
  AuthMySQLDB users
  AuthMySQLUserTable user_info
  <Limit GET POST>
    require valid-user
  </limit>
</location>

4.3.4.1. 用于创建 MySQL 数据库的脚本

只需输入

mysql < authmysql.sql

文件 authmysql.sql 的内容

示例 2. authmysql.sql

  create database http_users;
  connect http_users;

  CREATE TABLE user_info (
  user_name CHAR(30) NOT NULL,
  user_passwd CHAR(20) NOT NULL,
  user_group CHAR(10),
  PRIMARY KEY (user_name);

4.4. mod_dynvhost

4.4.1. 什么是 mod_dynvhost

它是一个允许“即时”定义新的虚拟主机的模块。只需在您的 vhost 路径中创建一个新目录即可。无需重启您的 Web 服务器

对于 ISP 的大规模虚拟主机来说,这是一个很好的解决方案

4.4.3. 构建和安装

cd /usr/local

tar -xvzf mod_dynvhost.tar.gz

cd dynvhost/

/usr/local/apache/bin/apxs -i -a -c mod_dynvhost.c

Tip检查httpd.conf
 

注意:查看 httpd.conf,mod_dynvhost.so 是否在启动时加载

LoadModule dynvhost_module libexec/mod_dynvhost.so

4.4.4. 示例配置

示例 3. /usr/local/apache/conf/httpd.conf

<DynamicVirtualHost /usr/local/apache/htdocs/vhosts/> 
  HomeDir / 
</DynamicVirtualHost>

现在在以下位置为每个虚拟主机创建一个目录/usr/local/apache/htdocs/vhosts/

例如

/usr/local/apache/htdocs/vhosts/foo.bar.org

您无需重启您的 Web 服务器

4.5. mod_roaming

4.5.1. 什么是 mod_roaming

 

使用 mod_roaming,您可以将您的 Apache Web 服务器用作 Netscape Roaming Access 服务器。这允许您将您的 Netscape Communicator 4.5 首选项、书签、地址簿、cookies 等存储在服务器上,以便您可以从任何可以访问该服务器的 Netscape Communicator 4.5 使用(和更新)相同的设置。

 
--www.klomp.org/mod_roaming/ 

从作者的角度来看

Mod_roaming 确实很有价值。不幸的是,它不能通过代理连接工作。您可以保持您的 Netscape 4.x 书签等在不同机器上同步。任何其他浏览器都不支持它,包括 MozillaNetscape 6.x。

4.5.2. 下载源代码

原始站点:http://www.klomp.org/mod_roaming/

4.5.3. 构建和安装

cd /usr/local 

tar -xvzf mod_roaming-1.0.2.tar.gz

cd mod_roaming-1.0.2

/usr/local/apache/bin/apxs -i -a -c mod_roaming.c

Tip检查httpd.conf
 

检查 httpd.conf,mod_roaming 是否在启动时加载

LoadModule roaming_module libexec/mod_roaming.so

4.5.4. 示例配置

示例 4. /usr/local/apache/conf/httpd.conf

RoamingAlias /roaming /usr/local/apache/roaming
<Directory /usr/local/apache/roaming>
  AuthUserFile /usr/local/apache/conf/roaming-htpasswd
  AuthType Basic
  AuthName "Roaming Access"
  <Limit GET PUT MOVE DELETE>
    require valid-user
  </Limit>
</Directory>